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,27 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "leaf";
version = "0.2.0";
src = fetchFromGitHub {
owner = "IogaMaster";
repo = "leaf";
rev = "v${version}";
hash = "sha256-y0NO9YcOO7T7Cqc+/WeactwBAkeUqdCca87afOlO1Bk=";
};
cargoHash = "sha256-RQ9fQfYfpsFAA5CzR3ICLIEYb00qzUsWAQKSrK/488g=";
meta = with lib; {
description = "Simple system fetch written in rust";
homepage = "https://github.com/IogaMaster/leaf";
license = licenses.mit;
maintainers = [ ];
mainProgram = "leaf";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchzip,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "league-gothic";
version = "1.601";
src = fetchzip {
url = "https://github.com/theleagueof/league-gothic/releases/download/${finalAttrs.version}/LeagueGothic-${finalAttrs.version}.tar.xz";
hash = "sha256-emkXKyQw4R0Zgg02oJsvBkqV0jmczP0tF0K2IKqJHMA=";
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
runHook postInstall
'';
meta = {
description = "Revival of an old classic, Alternate Gothic #1";
longDescription = ''
League Gothic is a revival of an old classic, and one of our favorite
typefaces, Alternate Gothic #1. It was originally designed by Morris
Fuller Benton for the American Type Founders Company in 1903. The company
went bankrupt in 1993, and since the original typeface was created before
1923, the typeface is in the public domain.
We decided to make our own version, and contribute it to the Open Source
Type Movement. Thanks to a commission from the fine & patient folks over
at WND.com, its been revised & updated with contributions from Micah
Rich, Tyler Finck, and Dannci, who contributed extra glyphs.
'';
homepage = "https://www.theleagueofmoveabletype.com/league-gothic";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ minijackson ];
};
})

View File

@@ -0,0 +1,50 @@
{
lib,
fetchzip,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "league-mono";
version = "2.300";
src = fetchzip {
url = "https://github.com/theleagueof/league-mono/releases/download/${finalAttrs.version}/LeagueMono-${finalAttrs.version}.tar.xz";
hash = "sha256-b945/ej5jVzq5enyiCmgdtqB7CcfxBGR7NJFWlydK0c=";
};
outputs = [
"out"
"web"
"variable"
"variableweb"
];
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
install -D -m444 -t $web/share/fonts/webfont $src/static/WOFF2/*.woff2
install -D -m444 -t $variable/share/fonts/truetype $src/variable/TTF/*.ttf
install -D -m444 -t $variableweb/share/fonts/webfont $src/variable/WOFF2/*.woff2
runHook postInstall
'';
meta = {
description = "monospace/variable font fun";
longDescription = ''
Five weights of monospace fun. League Mono is a mashup of sorts, inspired
by some beautiful forms found in both Fira Mono, Libertinus Mono, and
Courier(?!). League Mono was created in glyphs using masters for the
UltraLight, Regular, and Bold weights, and interpolated instances for the
Light and SemiBold weights. This, unfortunately, is not supported by UFO
files, which is why there is a Glyphs source and source files for each
weight.
'';
homepage = "https://www.theleagueofmoveabletype.com/league-mono";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ toastal ];
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
symlinkJoin,
the-neue-black,
blackout,
chunk,
fanwood,
goudy-bookletter-1911,
junction-font,
knewave,
league-gothic,
league-mono,
league-script-number-one,
league-spartan,
linden-hill,
orbitron,
ostrich-sans,
prociono,
raleway,
sniglet,
sorts-mill-goudy,
}:
symlinkJoin {
name = "league-of-moveable-type";
paths = [
the-neue-black
blackout
chunk
fanwood
goudy-bookletter-1911
junction-font
knewave
league-gothic
league-script-number-one
league-spartan
linden-hill
orbitron
ostrich-sans
prociono
raleway
sniglet
sorts-mill-goudy
];
meta = {
description = "Font Collection by The League of Moveable Type";
longDescription = ''
We're done with the tired old fontstacks of yesteryear. The web
is no longer limited, and now it's time to raise our standards.
Since 2009, The League has given only the most well-made, free &
open-source, @font-face ready fonts.
'';
homepage = "https://www.theleagueofmoveabletype.com/";
license = lib.licenses.ofl;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
bergey
minijackson
];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
pname = "league-script-number-one";
version = "2011-05-25";
src = fetchFromGitHub {
owner = "theleagueof";
repo = "league-script-number-one";
rev = "225add0b37cf8268759ba4572e02630d9fb54ecf";
hash = "sha256-Z3Zrp0Os3On0tESVical1Qh6wY1H2Hc0OPTlkbtsrCI=";
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/opentype $src/*.otf
runHook postInstall
'';
meta = {
description = "Modern, coquettish script font";
longDescription = ''
This aint no Lucinda. League Script #1 is a modern, coquettish script
font that sits somewhere between your high school girlfriends love notes
and handwritten letters from the 20s. Designed exclusively for the
League of Moveable Type, it includes ligatures and will act as the
framework for future script designs.
'';
homepage = "https://www.theleagueofmoveabletype.com/league-script";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ minijackson ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
fetchzip,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "league-spartan";
version = "2.220";
src = fetchzip {
url = "https://github.com/theleagueof/league-spartan/releases/download/${finalAttrs.version}/LeagueSpartan-${finalAttrs.version}.tar.xz";
hash = "sha256-dkvWRYli8vk+E0DkZ2NWCJKfSfdo4jEcGo0puQpFVVc=";
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
runHook postInstall
'';
meta = {
description = "Fantastic new revival of ATF's classic Spartan, a geometric sans-serif that has no problem kicking its enemies in the chest";
longDescription = ''
A new classic, this is a bold, modern, geometric sans-serif that has no
problem kicking its enemies in the chest.
Taking a strong influence from ATF's classic Spartan family, we're
starting our own family out with a single strong weight. We've put a few
unique touches into a beautiful, historical typeface, and made sure to
include an extensive characterset currently totaling over 300 glyphs.
Over time, the open-source license will allow us expand League Spartan
into a full family, with multiple weights and styles, and we're starting
by releasing our first Bold style for this exciting, modern classic now.
'';
homepage = "https://www.theleagueofmoveabletype.com/league-spartan";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ minijackson ];
};
})

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
gmp,
coreutils,
}:
stdenv.mkDerivation rec {
pname = "lean";
version = "3.51.0";
src = fetchFromGitHub {
owner = "leanprover-community";
repo = "lean";
# lean's version string contains the commit sha1 it was built
# from. this is then used to check whether an olean file should be
# rebuilt. don't use a tag as rev because this will get replaced into
# src/githash.h.in in preConfigure.
rev = "9fc1dee97a72a3e34d658aefb4b8a95ecd3d477c";
hash = "sha256-Vcsph4dTNLafeaTtVwJS8tWoWCgcP6pxF0ssZDE/YfM=";
};
patches = [
# Fix gcc-13 build failure
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/leanprover-community/lean/commit/21d264a66d53b0a910178ae7d9529cb5886a39b6.patch";
hash = "sha256-hBm2QNFS1jdoR6LUQHLReKxMKv7kbkrkrTGJ43YnvfA=";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [ gmp ];
cmakeDir = "../src";
# Running the tests is required to build the *.olean files for the core
# library.
doCheck = true;
preConfigure =
assert builtins.stringLength src.rev == 40;
''
substituteInPlace src/githash.h.in \
--subst-var-by GIT_SHA1 "${src.rev}"
substituteInPlace library/init/version.lean.in \
--subst-var-by GIT_SHA1 "${src.rev}"
'';
postPatch = "patchShebangs .";
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace $out/bin/leanpkg \
--replace "greadlink" "${coreutils}/bin/readlink"
'';
meta = {
description = "Automatic and interactive theorem prover";
homepage = "https://leanprover.github.io/";
changelog = "https://github.com/leanprover-community/lean/blob/v${version}/doc/changes.md";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
thoughtpolice
];
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchpatch,
fetchFromGitHub,
cmake,
gmp,
mpfr,
python3,
jemalloc,
ninja,
makeWrapper,
}:
stdenv.mkDerivation {
pname = "lean2";
version = "2018-10-01";
src = fetchFromGitHub {
owner = "leanprover";
repo = "lean2";
rev = "8072fdf9a0b31abb9d43ab894d7a858639e20ed7";
sha256 = "12bscgihdgvaq5xi0hqf5r4w386zxm3nkx1n150lv5smhg8ga3gg";
};
patches = [
# https://github.com/leanprover/lean2/pull/13
(fetchpatch {
name = "lean2-fix-compilation-error.patch";
url = "https://github.com/collares/lean2/commit/09b316ce75fd330b3b140d138bcdae2b0e909234.patch";
sha256 = "060mvqn9y8lsn4l20q9rhamkymzsgh0r1vzkjw78gnj8kjw67jl5";
})
];
nativeBuildInputs = [
cmake
makeWrapper
ninja
];
buildInputs = [
gmp
mpfr
python3
jemalloc
];
preConfigure = ''
patchShebangs bin/leantags
cd src
'';
cmakeFlags = [ "-GNinja" ];
postInstall = ''
wrapProgram $out/bin/linja --prefix PATH : $out/bin:${ninja}/bin
'';
meta = with lib; {
description = "Automatic and interactive theorem prover (version with HoTT support)";
homepage = "http://leanprover.github.io";
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [
thoughtpolice
];
broken = stdenv.hostPlatform.isAarch64;
mainProgram = "lean";
};
}

View File

@@ -0,0 +1,16 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,12 +77,8 @@
if (USE_MIMALLOC)
ExternalProject_add(mimalloc
PREFIX mimalloc
- GIT_REPOSITORY https://github.com/microsoft/mimalloc
- GIT_TAG v2.2.3
- # just download, we compile it as part of each stage as it is small
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
+ SOURCE_DIR "MIMALLOC-SRC"
INSTALL_COMMAND "")
list(APPEND EXTRA_DEPENDS mimalloc)
endif()

View File

@@ -0,0 +1,104 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
git,
gmp,
cadical,
pkg-config,
libuv,
enableMimalloc ? true,
perl,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lean4";
version = "4.23.0";
# Using a vendored version rather than nixpkgs' version to match the exact version required by
# Lean. Apparently, even a slight version change can impact greatly the final performance.
mimalloc-src = fetchFromGitHub {
owner = "microsoft";
repo = "mimalloc";
tag = "v2.2.3";
hash = "sha256-B0gngv16WFLBtrtG5NqA2m5e95bYVcQraeITcOX9A74=";
};
src = fetchFromGitHub {
owner = "leanprover";
repo = "lean4";
tag = "v${finalAttrs.version}";
hash = "sha256-wcB3HxSNukIOttjrfvDQB5IkmhYG9w/UMeOfCQ1+lvo=";
};
postPatch =
let
pattern = "\${LEAN_BINARY_DIR}/../mimalloc/src/mimalloc";
in
''
substituteInPlace src/CMakeLists.txt \
--replace-fail 'set(GIT_SHA1 "")' 'set(GIT_SHA1 "${finalAttrs.src.tag}")'
# Remove tests that fails in sandbox.
# It expects `sourceRoot` to be a git repository.
rm -rf src/lake/examples/git/
''
+ (lib.optionalString enableMimalloc ''
substituteInPlace CMakeLists.txt \
--replace-fail 'MIMALLOC-SRC' '${finalAttrs.mimalloc-src}'
for file in stage0/src/CMakeLists.txt stage0/src/runtime/CMakeLists.txt src/CMakeLists.txt src/runtime/CMakeLists.txt; do
substituteInPlace "$file" \
--replace-fail '${pattern}' '${finalAttrs.mimalloc-src}'
done
'');
preConfigure = ''
patchShebangs stage0/src/bin/ src/bin/
'';
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
gmp
libuv
cadical
];
nativeCheckInputs = [
git
perl
];
patches = [ ./mimalloc.patch ];
cmakeFlags = [
"-DUSE_GITHASH=OFF"
"-DINSTALL_LICENSE=OFF"
"-DUSE_MIMALLOC=${if enableMimalloc then "ON" else "OFF"}"
];
passthru.tests = {
version = testers.testVersion {
package = finalAttrs.finalPackage;
version = "v${finalAttrs.version}";
};
};
meta = with lib; {
description = "Automatic and interactive theorem prover";
homepage = "https://leanprover.github.io/";
changelog = "https://github.com/leanprover/lean4/blob/${finalAttrs.src.tag}/RELEASES.md";
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [
danielbritten
jthulhu
];
mainProgram = "lean";
};
})

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
libiconv,
}:
stdenv.mkDerivation {
pname = "leanify";
version = "unstable-2025-05-15";
src = fetchFromGitHub {
owner = "JayXon";
repo = "Leanify";
rev = "42770e600b32962e7110c24b5fcaa8c7c2144b17";
hash = "sha256-njfMR2DSKeVh+ZUewall7837E9JY3nhrTxO4LOY1pEo=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace Makefile \
--replace-fail "-flto" "" \
--replace-fail "lib/LZMA/Alloc.o" "lib/LZMA/CpuArch.o lib/LZMA/Alloc.o" \
--replace-quiet "-Werror" ""
'';
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
doCheck = true;
checkPhase = ''
runHook preCheck
./leanify /dev/null
runHook postCheck
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp leanify $out/bin/
runHook postInstall
'';
meta = with lib; {
description = "Lightweight lossless file minifier/optimizer";
longDescription = ''
Leanify is a lightweight lossless file minifier/optimizer.
It removes unnecessary data (debug information, comments, metadata, etc.) and recompress the file to reduce file size.
It will not reduce image quality at all.
'';
homepage = "https://github.com/JayXon/Leanify";
changelog = "https://github.com/JayXon/Leanify/blob/master/CHANGELOG.md";
license = licenses.mit;
maintainers = [ maintainers.mynacol ];
platforms = platforms.all;
mainProgram = "leanify";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
leaps,
nixosTests,
}:
buildGoModule rec {
pname = "leaps";
version = "0.9.1";
src = fetchFromGitHub {
owner = "Jeffail";
repo = "leaps";
rev = "v${version}";
sha256 = "sha256-9AYE8+K6B6/odwNR+UhTTqmJ1RD6HhKvtC3WibWUZic=";
};
proxyVendor = true; # darwin/linux hash mismatch
vendorHash = "sha256-0dwUOoV2bxPB+B6CKxJPImPIDlBMPcm0AwEMrVUkALc=";
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
passthru.tests = {
version = testers.testVersion { package = leaps; };
inherit (nixosTests) leaps;
};
meta = with lib; {
description = "Pair programming tool and library written in Golang";
mainProgram = "leaps";
homepage = "https://github.com/jeffail/leaps/";
license = licenses.mit;
maintainers = with lib.maintainers; [ qknight ];
};
}

View File

@@ -0,0 +1,83 @@
{
"@esbuild/aix-ppc64@npm:0.25.0": "468ba76b20f43118a11fd589ef162ff12c3c9f988a861045cc421b3100f9ade27103a0743fa9e9882c54dfe2ec647ca9b209cfc17ef61b5c9bc48be95e5856c1",
"@esbuild/aix-ppc64@npm:0.25.9": "b5c49f119424bb3f7be30b652ef87bf881824ace02cc2327ba6f7e0f86d04d2afe2087086985f4220dfdbb816acb67e6dfcf00da9eb8b028babfac43df3adac8",
"@esbuild/android-arm64@npm:0.25.0": "599fcb6b815a9bc8f83687663653c15ceb1c0f9ea0587da03976972281cd040c23b551a9f772d459809c22f7e218e04f1b159f8da1298b9c79b822f5636eff59",
"@esbuild/android-arm64@npm:0.25.9": "afe76da072b16e355f546d1d9023b814ead0487d9fa5e393eeb4bb3f6f76e5542e14b82396ca37c38e868ed64deef6b25f1c47e2564141fe5ecfe0eb7543f3f8",
"@esbuild/android-arm@npm:0.25.0": "ff6124350b732afe0f59087d5a50afb0c05d0d3951b4fc0f7c52c19ccacef504d7998217d8d7594dcfd4872748350a49ba611e8f2de3fe9e47a3df4393cb67eb",
"@esbuild/android-arm@npm:0.25.9": "0d4c724b84043db6597736865a4fe86640c88f21dc0ebe93a2298b4a0e0f0a5d1530a821dd1c18a2b39a6ca9abe8ff714b8ed5de496045a67150ea47c86a39d7",
"@esbuild/android-x64@npm:0.25.0": "7015f561e36c4fe142a4047184776344def5f25369c0bce8abd1de3d623d84cf7ddc09e5f7bac8294a8aea457ec23414e169648579382e6fd1aa39590ffe6e01",
"@esbuild/android-x64@npm:0.25.9": "9da8b1ede5670c2c9e644e0fedf1dd0747081272b296d3f80b53b44b637744d836efee00dc767b81940eb285524a5e3149d8045787f6281ee2bd53f61a9c8717",
"@esbuild/darwin-arm64@npm:0.25.0": "ba18b48c2c652a930a436a872b40cb0999fc0c4788dcda908f467d47555b080043e9ba1f9a7f080eb8d91ea8a3a399216aeea95539829a58885c412131025597",
"@esbuild/darwin-arm64@npm:0.25.9": "84a88a8f72fcc66381518d5821e4ed276aeea17c76559bee4fcb472b19456da630ad84d8d74b3e4c297ef7b1ec5bd5037d55ac6ef5c515a77fb94a1bd891dece",
"@esbuild/darwin-x64@npm:0.25.0": "83470576dc815364e8f2a6f2ed9c62496fa8112ee4905ccc3b142e36d28c9c90310ad179055d87e2e880e1bf9a3be0e9eb2129d6a88fdacf38181bfab6cf75c0",
"@esbuild/darwin-x64@npm:0.25.9": "c500bcd0c1a8f66d19cf575299a7da7f29dbdb56beac95bb6ddc570291e3e9da4e7d31db6453fc19ea5ac7f85662f40c9a3965c3e1f49657efeb292a6f601a26",
"@esbuild/freebsd-arm64@npm:0.25.0": "646f3abba09e87c4555359200af913bbda9fac43629f6ade6adefdbd0d915707a375314e1d25ed0d951e6024d7d19fe0ecdd10caf4ff6177f3f6450e7132a6a9",
"@esbuild/freebsd-arm64@npm:0.25.9": "fb4951968ad62e5316ffd08c037bb2396e8119a0c2289e968421bb277bdbffe23d89c92dcd2d7eb680f31be2b05e36406211b141b9b89378b424e4b5193c3d7f",
"@esbuild/freebsd-x64@npm:0.25.0": "4b769e23981e5ec010f9c4670b1194e26e8bf98cc0bb70962fe8c160da508b40561c0b97911072c5de82954a4164af9d885e45e597e39ae379b5cad2d0a8c69e",
"@esbuild/freebsd-x64@npm:0.25.9": "0c71856891d5cea255f9bcb4482c70347a39198da2769a273afbd16bc9db7176bc1d28c41dd569b8b8f98cfd14b10a728c79f54311037d702bb7dffd95f27740",
"@esbuild/linux-arm64@npm:0.25.0": "508ca15315c4d7b7db28fc8e17247ebe5c816c270496d1354f0d97baafdf774ec055c2d9ac51e06fb02fed93ce4f94d109b92fe80a62e42bf51a2c5046fc76c8",
"@esbuild/linux-arm64@npm:0.25.9": "6c64bf50dfb709d4000b022558293764a20ff8ba0b6638e8abb3bd0806cab25ac971f1910eaf2a4d73f92080afdb296d57175b2199647de019c2f419365f839d",
"@esbuild/linux-arm@npm:0.25.0": "3756d3974f5b5a6453f2ece2fa012f530b32b6af78cc0b6466bf0582b3da718803dae41bdb5cc4cdc360882bd791b63bb79e5f4a6f8c44ee053fc93b8dd6ea7f",
"@esbuild/linux-arm@npm:0.25.9": "b9a473988dadbe98f1c6ade2597e5967371d929ac83bb9f888d726d4f0e5cc4b8fe5020332adb26d61748619bf3e62c831d9c80b3bf815a6dd90dab76283d533",
"@esbuild/linux-ia32@npm:0.25.0": "d220829704167772688a93568738d0887fc45d88cce7a4f2e4de992f161e9aa679294bfdf2dd3d70fa6549b548a023d98a90f19270cd8ebd5b365efe04b7027c",
"@esbuild/linux-ia32@npm:0.25.9": "51f458a7038e2ee014b994f7f216821194b00716ae5abe78fe828d9cefd47575dc0ff703f95c18017e59b7bcb63c13ac6d551e8ab64522cce8af89bc33a689d6",
"@esbuild/linux-loong64@npm:0.25.0": "e7f1a54ea77c9307f54d7172a03b1e77ec18b3f6622077fe3dcb4d53435ea47fc60e82b9da7b8efe375c0e46f4c07169686262af2eaea6557cf033c973f6fbcd",
"@esbuild/linux-loong64@npm:0.25.9": "81478bff0f6d54e06fa96ec120c2dc92e47c3a1392397a121cf50a83496156f9abebd46f93e35a496f4f305c8af7cd430e4fe723474a2420cc21d39257852210",
"@esbuild/linux-mips64el@npm:0.25.0": "d51dc06bc3da38fb046986019c6b1a8aa1b43a835089f1f8d8ce4242c9417e1d3d25fa593708cd61f66f8665be27829316b37ecf9e08dc48718aacc00608aac1",
"@esbuild/linux-mips64el@npm:0.25.9": "78709795d663461c54168719517c4c38b2a51861af0f97a91003ea6fe2c2b67dca77f57c2a2c4eb2c6481a8660b5fe477c72e46e90154cb72f1f235e683b2d0f",
"@esbuild/linux-ppc64@npm:0.25.0": "a19514e5b21c5f70e6b5b6ccdacb09922e9c397e80e3b1ac8e55ed283f9f3a5325a9e4dcf284d033954f3c51a88411fa95473c83b2b69990e02e351fa971b63f",
"@esbuild/linux-ppc64@npm:0.25.9": "4a43e167f7f9659a5ca34678cb6fee53fbdba8b14a9a45f323abf33d9e141fd268984b0a18445db84cbada5ed2ac211ef318d5c44af0fbc0c7eea31c0c82321f",
"@esbuild/linux-riscv64@npm:0.25.0": "4b275bb4d2442a68b62a93926a4da04bde06795fc7f5719555c7a9d2cf0e8a2cd6a50c0e574f1285e55e126f0be29cf6017d829c571c2fb31728fb1961c45f70",
"@esbuild/linux-riscv64@npm:0.25.9": "e71027660a884b5bbcb6e9e84ed439b3ef19466cd9f6d16c1bdfe2db6dbe9a40e8fc19ad429749102d1c15f015372f7f9f8ab7f82d506efffbd143fe8ab28aa9",
"@esbuild/linux-s390x@npm:0.25.0": "7bd0fefc75c72d6d657aa9fec2322f1b8744936fc77da7e32027f0f1aff4b5fdaa8ae19a060fa4d465a79f14e13a4e10f3eeaf1ca64dc4c3cf08494b3e26100b",
"@esbuild/linux-s390x@npm:0.25.9": "7004c5852a3cbd1bd1d727e13b2f2be0747861ceab840ab8492ddff80b3d34dd41398681016cda3748c697e1b384bf4d4c1ad588538df38eba599ba935ecbd09",
"@esbuild/linux-x64@npm:0.25.0": "f9562d7e1d25b9a69faa40aaa7dd607b820836f88733b26b27a48b14b8a526cc5ec033c1869386419bd609c96442974c339ccbb03b4a23ea205927b2243d3b6c",
"@esbuild/linux-x64@npm:0.25.9": "3bab69aa63d5ef65e9eaa229963ee3a3c868a06badf019277af06d4f7c52ea3a30abafad361e5bcce71032abd8b6fb666607977a627fa2def8db6756cf99b2ee",
"@esbuild/netbsd-arm64@npm:0.25.0": "4f2502bbcf5967cf2a07c712f9fd87a0ec1e60356ea115dc8b69ea7364e88edae5758bb7cba4049065bb8e78d69d0f6bce09f42f146a50b2dcc6069e14ba66d5",
"@esbuild/netbsd-arm64@npm:0.25.9": "02b82c6773ad09082e3b18f01dbf4b9f72519a9e93995b479e4bd4bb28c8a4088972fd0e9304881d09775429dc388a3625249096426349dc3adc2208ee408a4a",
"@esbuild/netbsd-x64@npm:0.25.0": "82e3e256ac495620890867e85b63f4327e3f5cd5876c868dd4690094c7e4c233bc2359835e512443b8a44f44fc15d98ef3e63914efae8128d3a348d0ebaa66ec",
"@esbuild/netbsd-x64@npm:0.25.9": "51a576cb8ad7f43e43f76b25273735646eefa0d2a5bdaa3bd6387ab89512940bee49e91f7051b3d08d143d5cd6b4501f72a9462f30e242f0dff931c4ebe40363",
"@esbuild/openbsd-arm64@npm:0.25.0": "6c8de60d94a53fa4c37f7cbfca04baf06a14bb4b4360ab711b2235ec33b624e268cd39aad84382648eabae4db5727495806221211d663c36f1710579f504f967",
"@esbuild/openbsd-arm64@npm:0.25.9": "9bf0e7a535304f0d3c700d6e4ef536fe94b17e05bf5f9a4cc308ffc8c3d3cd642ee7debcf7f649a845610b1c706675af903f785ef14f320ee918faa61bf79bb5",
"@esbuild/openbsd-x64@npm:0.25.0": "ed2beae58658aa2146a9cae2152a38f52f34e2dd929e79a298f8ce4b3c2c6fcf8e2ac98b458fb0fe5baf87c08df12b162c74b52b4c95f5f54f5a073da1668ebe",
"@esbuild/openbsd-x64@npm:0.25.9": "bb9bb4c5f095575f267d30c9e65f8e64c3f425d24904f6e22112c305ee5f1503aea750f510252e4b862f366e5efac678b71cc848cda72c587be8af4119d28f80",
"@esbuild/openharmony-arm64@npm:0.25.9": "130f08d72a018aceef14b8534b9910bd2c0852fc074467ad0adf54d339584277326c7ffc8cd8126be08a530184c51d8de11d06971d1cc44545162bfb8428bcc3",
"@esbuild/sunos-x64@npm:0.25.0": "9a0d0569ea65171983b0daadbf8ec6dd31341db7bee50fc4c2b85521eb09ff7597279d9dda4b4f25c3bfd6f4f77d558b6a6f36dcfb6794e7fc2177df9770a17e",
"@esbuild/sunos-x64@npm:0.25.9": "a86fca2baaaffcaed419bdc6569cf4a88b4ae830034f8deb4d83ba781b989e25b03696cfe05a482e24710191abc53479b70491f3f157eff37ed2b486d88c897b",
"@esbuild/win32-arm64@npm:0.25.0": "5484d8ad74479f8cc8c7b5d14d5f8ced3e50d6ef7fc12a45406ae6c6e5199784267bfccbe0173b598c1b512ea20ecd5de20579cf04d3e07848df3db7ccffd8e6",
"@esbuild/win32-arm64@npm:0.25.9": "cd32c8fe88511e413f6161480ea3b6fc2ed7cb4bd2febb455e7bc45842880c752ba71772f289908ded50d8cfd3207e6730c8fdec2e811af1f65e97d1ee53b4ef",
"@esbuild/win32-ia32@npm:0.25.0": "206eb14fd607c5a5116a49eaf4ed3ca7c34c0372729d7d34aa07bbc2a5792afabfd62873212213b17607165bd4ecbe4366066de0ddedd50a46a27a3c5cb830e5",
"@esbuild/win32-ia32@npm:0.25.9": "c374576d857dfa3c8dc5bdeef598ffc0e3adfcb8b7986a2b78ce61d2aa3c3d1f1cd15cb685f52b88411403d974f657c3fd44cf9b4fadb94e8ed69d75e9e3e0ef",
"@esbuild/win32-x64@npm:0.25.0": "a129e6ad07bbcc791fda365e71634aa45cf3989ded1f05ed1ecb99efa625b09081ef410d236fdd279037d001f2e5e5049c98bfbe6a2242c818463222df85cc54",
"@esbuild/win32-x64@npm:0.25.9": "41f2ba9101f4a9a28e3287026a32a05e8fdffcb4a4e41cfaf9f94b41093c6882f46ef80f12854b67b7ad78e47d1df492f3e8a71d41813a61500ace4a574af851",
"@rollup/rollup-android-arm-eabi@npm:4.46.2": "d7d021a87cd3504c8d71b00a94199e13c4e07c14fe20ed7300cf1e6436a5f3fe8496c9e5f206e023b15f9b6f8991b2d95a48b47fa41d5c00b44f37fe5f4d5eb8",
"@rollup/rollup-android-arm64@npm:4.46.2": "ca901edbf95bbdd2505c979f777e2a01e2e885a597b6daeed5362dac523ea2a1eb9c0c0d22b9b436f3613c22abdd442bd2764491948890930333a9e40ade35be",
"@rollup/rollup-darwin-arm64@npm:4.46.2": "ed2b07c4803915d46ff642abd659e179fae524dcd3cb88c810a5b71290d16b498e0371dcb91fe98f6301b8c6600d579a099be1e9450278326281002df4a80019",
"@rollup/rollup-darwin-x64@npm:4.46.2": "c53e31df756cb8d44e179c167db1ec5d321225561a1aff2b320091c226c2dfafd080a98a1466f2dc697ff0173b52c41d89c60cae97f73b41fbd128d4c87fde66",
"@rollup/rollup-freebsd-arm64@npm:4.46.2": "9495d87e670bbea87e43d06df53ae83fcd46e2c82a80927556f3516ac76613b8b7739bbd4b43c3f264bbab57a50a3b6cd2dfa6c1b2741bd3acdeba8af7c47018",
"@rollup/rollup-freebsd-x64@npm:4.46.2": "890a965b45f4c4b9beb4696912ee30472180a040dafb24ce32f8811aed4d0d0ee90bf675d234abc6d8e66266d2966a72483fff7e6f1dbd116424b23e18fe38a9",
"@rollup/rollup-linux-arm-gnueabihf@npm:4.46.2": "ce9720f61b4f7d9a791ba78e13cbbea67ef5f46c465e054c08f009cd06de8c1e4518df8e8578366a27cc9ae4280d37528dd0762906a19e820ca1a95158b47090",
"@rollup/rollup-linux-arm-musleabihf@npm:4.46.2": "b884f568a681d8c13ffdfa77ad6183ed6f7f9fe5bc952b1c82dc21e36b4bc8eb7ee292168929a2575ff5ff14582060d7d73c583aef7edf04fd0bddd67140f4b0",
"@rollup/rollup-linux-arm64-gnu@npm:4.46.2": "519477372d8358a4d3f1f1245bc2b5b57b65960f9a7d02bc5795ba68aed471fe87b20391a63c334bf0abb94085ad8c89d8d3b2e4d79ca0fed702537e9a0949eb",
"@rollup/rollup-linux-arm64-musl@npm:4.46.2": "a5dec7799dd832b5374171a73a6b57cffef8be317482dd9ea4e6554db6fc8afb4bdb91ec725502f1b378aa9cb9a1333684056d55c9120262cb7744a33b961a76",
"@rollup/rollup-linux-loongarch64-gnu@npm:4.46.2": "76ebbf40535f68c6922edf7d866dad00608cd475c8436d199653341ea09124cb4478f67c12d32b5363634f3f811926acb14a086eb146a1fe6b310fdbde01f2c8",
"@rollup/rollup-linux-ppc64-gnu@npm:4.46.2": "31b62a51393e0f2608e1133701523e894ff5d04038e3d9af95abf595ab7fbe827167a651b200e9975d0e76904699cde3428aa1afbf46bf939f836f8ef90b1d88",
"@rollup/rollup-linux-riscv64-gnu@npm:4.46.2": "4f22bc5fe58730026085d1a5372b51d9ed933b314cde2d3dec1d73ad76106406915c313d331f094176ed917863c0041667e63184d9730da7107b11266dad477f",
"@rollup/rollup-linux-riscv64-musl@npm:4.46.2": "1bc37b77ac38d7e82e7d661b67fc043a1db01272a0566e5432c61e3c7a5e6c11b5ecb4a49547da2de33a8e0a7b0d685f3c7341572fa77c90e9b71e515f753e86",
"@rollup/rollup-linux-s390x-gnu@npm:4.46.2": "1b1821a848d8bf86fa5e01ae57f60ebe5566cbcb0c605b5d05050821e94b8b45a72515ef302a3021196018b289aaffade5c41a5f89b3f8324d509a25d28dcfc4",
"@rollup/rollup-linux-x64-gnu@npm:4.46.2": "66231802689c1ac1d6ecec6fd65d14c01c900537e588808e0a2c92ba34e322665bb6df3853500717cf600f40a93de4c490838290e21bb10eed4249f587a08109",
"@rollup/rollup-linux-x64-musl@npm:4.46.2": "064ed54e9ddb05eec1b5da5ac8366f3290b7b65e63959a76a26d6940ce44d741c30488e39ce94c51a2679b2c56217c2e0aaf74e123a1c0928503712c115d6047",
"@rollup/rollup-win32-arm64-msvc@npm:4.46.2": "b59089cddf652e3da278744f6b8b2105360d1219833e54791380322913d40073ed4197ccd06d6091e83e1e12a5290d7a2e4aeae7947ff20c45943d07d1f0af0c",
"@rollup/rollup-win32-ia32-msvc@npm:4.46.2": "d0aae1f80a64d9148426a7ff25b9df7f3abf7aca912c358a952f4b3bc541e030b5959f52e0b67abe01b9c8c8fb6567d1bbd30e31daabb7e2c4dc0488faf875f7",
"@rollup/rollup-win32-x64-msvc@npm:4.46.2": "740ca3c1d07f5af76fc9c2db917edbf6d0c1cf3eeee8330a0c571db4990ec44f0b272696a215ab118e8a32d7529f84bd47225e85dfab458a989b4b18d0bbea49",
"lightningcss-darwin-arm64@npm:1.30.1": "bbdce4ee14b3952699e6d07c539cf4bd678853bfd974e3107742198dac38dfa6d40c6ea80163a7026aff662dd7d3a462a2bee9a18448c75c788659ceebe2746a",
"lightningcss-darwin-x64@npm:1.30.1": "6b88c182be0de82858983ec374093c2cb13cd58139456e25be215fc55a7a8cbfcd6f7487bee1507fc024988a1f324d7cb26b3f195893d5a69ccaf252dc9094eb",
"lightningcss-freebsd-x64@npm:1.30.1": "731a96282db6afff3f57e8cbb73f51d06455231868b3b311a772ee11ead9c57538fc217d0956df4f177dbb805fa4fc761734440f6d2bb8965963b21f06bf63c1",
"lightningcss-linux-arm-gnueabihf@npm:1.30.1": "fcf07f54c4d7d056f9b57d39e6df1c6f60c02ef4ebd51eda76056d35d89b1307af8737e44076d2b1f85348d2b1b9c61bf2220c5347389a6d40ad8bb12f34b5cf",
"lightningcss-linux-arm64-gnu@npm:1.30.1": "bc82ce2e96ffab4b0ba1f9adacf63f461c3f6221bcbc955104c05e6e8c2c6ed8863421663e0e4148a682b143868d07190c38e9f990915a80ce9692f963132320",
"lightningcss-linux-arm64-musl@npm:1.30.1": "2ae25a764b8ed9fcc1977dc1786011e68db23bf3343168fa2d4a9a4bcbb73c7aae258cdcb879d68a3a28e22343705ee435517d3f045e49b15fbb65816d74a91d",
"lightningcss-linux-x64-gnu@npm:1.30.1": "190ac9ba1b9a4bf658a9e5b3c5702546ec779a7a5ccf5a4e06e5d46012ce6cad1842a9b1e717498bc759e103ba7390f42c9b8ba3e67157adec8e7162225633b4",
"lightningcss-linux-x64-musl@npm:1.30.1": "fab6ed75d747024fcf46212b9edc7d1daccfbe4e7a06dcd0f9e841c6a023e61e716751747f9e8aecba18495adc9ef6bc20b24616d5c15c87f5dc1ff9ce1fd859",
"lightningcss-win32-arm64-msvc@npm:1.30.1": "2cc285e89f66323ecae5ec41a6b1a57500d74a549fb392829c99708d5a5254d709c0ccd2d8fef4f6c1fc9a55c5bd51eca633fa1f2228563f884545668adc1b17",
"lightningcss-win32-x64-msvc@npm:1.30.1": "60bd930e71fab0fbf0250406d4791bf27f0b9c8daf095c8d5fce9f3e120d24753e309eb6fed956043fc6a6cbb6d1da30fb0862acb54fa046b5f9a2e69908b6f9"
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchFromGitHub,
yarn-berry_4,
nodejs,
meson,
ninja,
blueprint-compiler,
gtksourceview5,
wrapGAppsHook4,
desktop-file-utils,
pkg-config,
writableTmpDirAsHomeHook,
gjs,
libadwaita,
nix-update-script,
}:
let
yarn-berry = yarn-berry_4;
in
stdenv.mkDerivation (finalAttrs: {
pname = "learn6502";
version = "0.3.0";
src = fetchFromGitHub {
owner = "JumpLink";
repo = "Learn6502";
tag = "v${finalAttrs.version}";
hash = "sha256-Aoj4Z9uraBEH3BW0hrhuV3Hu7cnRxvjbpzm4pUziWS4=";
};
missingHashes = ./missing-hashes.json;
offlineCache = yarn-berry.fetchYarnBerryDeps {
inherit (finalAttrs) src missingHashes;
hash = "sha256-0r+SRVx8b238SVm+XM4+uw7Ge3rFtsNwD/+uNfBA7eM=";
};
nativeBuildInputs = [
nodejs
yarn-berry.yarnBerryConfigHook
meson
ninja
blueprint-compiler
wrapGAppsHook4
desktop-file-utils
pkg-config
writableTmpDirAsHomeHook
gjs # gjs-console
];
buildInputs = [
gjs
gtksourceview5
libadwaita
];
strictDeps = true;
# yarnBerryConfigHook needs to run in the yarn.lock directory
postConfigure = ''
pushd ..
'';
# meson needs to enter the subdirectory
preBuild = ''
popd
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Modern 6502 Assembly Learning Environment for GNOME";
homepage = "https://github.com/JumpLink/Learn6502";
mainProgram = "eu.jumplink.Learn6502";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromGitHub,
boost,
cmake,
curl,
ruby,
}:
stdenv.mkDerivation rec {
pname = "leatherman";
version = "1.12.13";
src = fetchFromGitHub {
sha256 = "sha256-rfh4JLnLekx9UhyLH6eDJUeItPROmY/Lc6mcWpbGb3s=";
rev = version;
repo = "leatherman";
owner = "puppetlabs";
};
cmakeFlags = [ "-DLEATHERMAN_ENABLE_TESTING=OFF" ];
env.NIX_CFLAGS_COMPILE = "-Wno-error";
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
curl
ruby
];
meta = with lib; {
homepage = "https://github.com/puppetlabs/leatherman/";
description = "Collection of C++ and CMake utility libraries";
license = licenses.asl20;
maintainers = [ maintainers.womfoo ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
hidapi,
udev,
}:
rustPlatform.buildRustPackage {
pname = "leddy";
version = "0.1.0-unstable-2024-10-15";
src = fetchFromGitHub {
owner = "XanClic";
repo = "leddy";
rev = "fd259425980df17bd761006a1ccef93e23bfdad6";
hash = "sha256-7t+E47odtayw26AnhtkxIWr0TxDwruEjP3Af3ajmVAA=";
};
cargoHash = "sha256-ezl9/vKDPJNYH1U4H/7OtE0g3iWIS+tDapJDhaKT+l0=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
hidapi
udev
];
doCheck = false; # no tests
meta = {
description = "LED controller for the Fnatic miniStreak and Fnatic Streak keyboards";
homepage = "https://github.com/XanClic/leddy";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.jmir ];
mainProgram = "leddy";
};
}

View File

@@ -0,0 +1,76 @@
{
lib,
fetchPypi,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "ledfx";
version = "2.0.111";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-b6WHulQa1er0DpMfeJLqqb4z8glUt1dHvvNigXgrf7Y=";
};
pythonRelaxDeps = true;
pythonRemoveDeps = [
# not packaged
"rpi-ws281x"
];
build-system = with python3.pkgs; [
cython
pdm-backend
];
dependencies = with python3.pkgs; [
aiohttp
aiohttp-cors
aubio
certifi
flux-led
python-dotenv
icmplib
mss
multidict
netifaces2
numpy
openrgb-python
paho-mqtt
pillow
psutil
pybase64
pyserial
pystray
python-mbedtls
python-osc
python-rtmidi
# rpi-ws281x # not packaged
requests
sacn
samplerate
sentry-sdk
setuptools
sounddevice
stupidartnet
uvloop
vnoise
voluptuous
zeroconf
];
# Project has no tests
doCheck = false;
meta = {
description = "Network based LED effect controller with support for advanced real-time audio effects";
homepage = "https://github.com/LedFx/LedFx";
changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
license = lib.licenses.gpl3Only;
teams = [ lib.teams.c3d2 ];
mainProgram = "ledfx";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
python3Packages,
fetchFromGitHub,
ledger,
hledger,
}:
python3Packages.buildPythonApplication rec {
pname = "ledger-autosync";
version = "1.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "egh";
repo = "ledger-autosync";
tag = "v${version}";
hash = "sha256-bbFjDdxYr85OPjdvY3JYtCe/8Epwi+8JN60PKVKbqe0=";
};
build-system = with python3Packages; [ poetry-core ];
dependencies = with python3Packages; [
ofxclient
ofxparse
];
nativeCheckInputs = [
hledger
ledger
python3Packages.ledger
python3Packages.pytestCheckHook
];
disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
# keyring.errors.KeyringError: Can't get password from keychain: (-50, 'Unknown Error')
# keyring.backends.macOS.api.Error: (-50, 'Unknown Error')
"tests/test_cli.py"
"tests/test_weird_ofx.py"
];
meta = {
homepage = "https://github.com/egh/ledger-autosync";
changelog = "https://github.com/egh/ledger-autosync/releases/tag/v${version}";
description = "OFX/CSV autosync for ledger and hledger";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ eamsden ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
fetchurl,
appimageTools,
makeWrapper,
imagemagick,
}:
let
pname = "ledger-live-desktop";
version = "2.130.0";
src = fetchurl {
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
hash = "sha256-llI3J/7fPnO5lrLe04VZQTVmJmPyY9vg1EXy6Pea+6s=";
};
appimageContents = appimageTools.extractType2 {
inherit pname version src;
};
in
appimageTools.wrapType2 rec {
inherit pname version src;
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/ledger-live-desktop.desktop $out/share/applications/ledger-live-desktop.desktop
install -m 444 -D ${appimageContents}/ledger-live-desktop.png $out/share/icons/hicolor/1024x1024/apps/ledger-live-desktop.png
${imagemagick}/bin/convert ${appimageContents}/ledger-live-desktop.png -resize 512x512 ledger-live-desktop_512.png
install -m 444 -D ledger-live-desktop_512.png $out/share/icons/hicolor/512x512/apps/ledger-live-desktop.png
wrapProgram "$out/bin/${pname}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
substituteInPlace $out/share/applications/ledger-live-desktop.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "App for Ledger hardware wallets";
homepage = "https://www.ledger.com/ledger-live/";
license = licenses.mit;
maintainers = with maintainers; [
andresilva
thedavidmeister
nyanloutre
RaghavSood
th0rgal
];
platforms = [ "x86_64-linux" ];
mainProgram = "ledger-live-desktop";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
udevCheckHook,
}:
stdenv.mkDerivation {
pname = "ledger-udev-rules";
version = "0-unstable-2024-02-12";
src = fetchFromGitHub {
owner = "LedgerHQ";
repo = "udev-rules";
rev = "f474382e370c9fa2a2207e6e675b9b364441aed7";
sha256 = "sha256-5jN9xy3+kk540PAyfsxIqck9hdI3t2CNpgqKxLbAsDg=";
};
nativeBuildInputs = [
udevCheckHook
];
doInstallCheck = true;
dontBuild = true;
dontConfigure = true;
installPhase = ''
mkdir -p $out/lib/udev/rules.d
cp 20-hw1.rules $out/lib/udev/rules.d/20-ledger.rules
'';
meta = with lib; {
description = "udev rules for Ledger devices";
license = licenses.asl20;
maintainers = with maintainers; [
asymmetric
toasteruwu
];
platforms = platforms.linux;
homepage = "https://github.com/LedgerHQ/udev-rules";
};
}

View File

@@ -0,0 +1,5 @@
source 'https://rubygems.org'
gem 'ledger_web'
gem "csv", "~> 3.3"

View File

@@ -0,0 +1,110 @@
GEM
remote: https://rubygems.org/
specs:
activemodel (8.0.2)
activesupport (= 8.0.2)
activerecord (8.0.2)
activemodel (= 8.0.2)
activesupport (= 8.0.2)
timeout (>= 0.4.0)
activesupport (8.0.2)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
uri (>= 0.13.1)
base64 (0.2.0)
benchmark (0.4.0)
bigdecimal (3.1.9)
concurrent-ruby (1.3.5)
connection_pool (2.5.3)
csv (3.3.4)
database_cleaner (2.1.0)
database_cleaner-active_record (>= 2, < 3)
database_cleaner-active_record (2.2.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
database_cleaner-core (2.0.1)
diff-lcs (1.6.1)
directory_watcher (1.5.1)
drb (2.2.1)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
ledger_web (1.5.2)
database_cleaner
directory_watcher (~> 1.5.1)
pg
rack (>= 1.3.6)
rspec
sequel
sinatra
sinatra-contrib
sinatra-session
logger (1.7.0)
minitest (5.25.5)
multi_json (1.15.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
pg (1.5.9)
rack (3.1.14)
rack-protection (4.1.1)
base64 (>= 0.1.0)
logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-session (2.1.1)
base64 (>= 0.1.0)
rack (>= 3.0.0)
rspec (3.13.0)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.3)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.4)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.3)
ruby2_keywords (0.0.5)
securerandom (0.4.1)
sequel (5.92.0)
bigdecimal
sinatra (4.1.1)
logger (>= 1.6.0)
mustermann (~> 3.0)
rack (>= 3.0.0, < 4)
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sinatra-contrib (4.1.1)
multi_json (>= 0.0.2)
mustermann (~> 3.0)
rack-protection (= 4.1.1)
sinatra (= 4.1.1)
tilt (~> 2.0)
sinatra-session (1.0.0)
sinatra (>= 1.0)
tilt (2.6.0)
timeout (0.4.3)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uri (1.0.3)
PLATFORMS
ruby
DEPENDENCIES
csv (~> 3.3)
ledger_web
BUNDLED WITH
2.6.6

View File

@@ -0,0 +1,481 @@
{
activemodel = {
dependencies = [ "activesupport" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0v35y2jzqlfy1wnrzlzj2cxylhnz09vykaa1l2dnkq7sl5zzpq8a";
type = "gem";
};
version = "8.0.2";
};
activerecord = {
dependencies = [
"activemodel"
"activesupport"
"timeout"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "02nrya34qviawdkssyahb3mg08kqdc461b320a6ikr245jwp0d3r";
type = "gem";
};
version = "8.0.2";
};
activesupport = {
dependencies = [
"base64"
"benchmark"
"bigdecimal"
"concurrent-ruby"
"connection_pool"
"drb"
"i18n"
"logger"
"minitest"
"securerandom"
"tzinfo"
"uri"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0pm40y64wfc50a9sj87kxvil2102rmpdcbv82zf0r40vlgdwsrc5";
type = "gem";
};
version = "8.0.2";
};
base64 = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
type = "gem";
};
version = "0.2.0";
};
benchmark = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0jl71qcgamm96dzyqk695j24qszhcc7liw74qc83fpjljp2gh4hg";
type = "gem";
};
version = "0.4.0";
};
bigdecimal = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1k6qzammv9r6b2cw3siasaik18i6wjc5m0gw5nfdc6jj64h79z1g";
type = "gem";
};
version = "3.1.9";
};
concurrent-ruby = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1ipbrgvf0pp6zxdk5ascp6i29aybz2bx9wdrlchjmpx6mhvkwfw1";
type = "gem";
};
version = "1.3.5";
};
connection_pool = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0nrhsk7b3sjqbyl1cah6ibf1kvi3v93a7wf4637d355hp614mmyg";
type = "gem";
};
version = "2.5.3";
};
csv = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1kfqg0m6vqs6c67296f10cr07im5mffj90k2b5dsm51liidcsvp9";
type = "gem";
};
version = "3.3.4";
};
database_cleaner = {
dependencies = [ "database_cleaner-active_record" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1kc9bp3415p1m94d54y2pjjlsx546q0w3fn65xlxlxhm7dpa5jqx";
type = "gem";
};
version = "2.1.0";
};
database_cleaner-active_record = {
dependencies = [
"activerecord"
"database_cleaner-core"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1iz1hv2b1z7509dxvxdwzay1hhs24glxls5ldbyh688zxkcdca1j";
type = "gem";
};
version = "2.2.0";
};
database_cleaner-core = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0v44bn386ipjjh4m2kl53dal8g4d41xajn2jggnmjbhn6965fil6";
type = "gem";
};
version = "2.0.1";
};
diff-lcs = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1m3cv0ynmxq93axp6kiby9wihpsdj42y6s3j8bsf5a1p7qzsi98j";
type = "gem";
};
version = "1.6.1";
};
directory_watcher = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0fwc2shba7vks262ind74y3g76qp7znjq5q8b2dvza0yidgywhcq";
type = "gem";
};
version = "1.5.1";
};
drb = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
type = "gem";
};
version = "2.2.1";
};
i18n = {
dependencies = [ "concurrent-ruby" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "03sx3ahz1v5kbqjwxj48msw3maplpp2iyzs22l4jrzrqh4zmgfnf";
type = "gem";
};
version = "1.14.7";
};
ledger_web = {
dependencies = [
"database_cleaner"
"directory_watcher"
"pg"
"rack"
"rspec"
"sequel"
"sinatra"
"sinatra-contrib"
"sinatra-session"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0i4vagaiyayymlr41rsy4lg2cl1r011ib0ql9dgjadfy6imb4kqh";
type = "gem";
};
version = "1.5.2";
};
logger = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr";
type = "gem";
};
version = "1.7.0";
};
minitest = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0mn7q9yzrwinvfvkyjiz548a4rmcwbmz2fn9nyzh4j1snin6q6rr";
type = "gem";
};
version = "5.25.5";
};
multi_json = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
type = "gem";
};
version = "1.15.0";
};
mustermann = {
dependencies = [ "ruby2_keywords" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "123ycmq6pkivv29bqbv79jv2cs04xakzd0fz1lalgvfs5nxfky6i";
type = "gem";
};
version = "3.0.3";
};
pg = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1p2gqqrm895fzr9vi8d118zhql67bm8ydjvgqbq1crdnfggzn7kn";
type = "gem";
};
version = "1.5.9";
};
rack = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0i2bjh42cmlkwxjrldqj8g5sfrasdp64xhfr25kvp4ziilm3qqc4";
type = "gem";
};
version = "3.1.14";
};
rack-protection = {
dependencies = [
"base64"
"logger"
"rack"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0sniswjyi0yn949l776h7f67rvx5w9f04wh69z5g19vlsnjm98ji";
type = "gem";
};
version = "4.1.1";
};
rack-session = {
dependencies = [
"base64"
"rack"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1sg4laz2qmllxh1c5sqlj9n1r7scdn08p3m4b0zmhjvyx9yw0v8b";
type = "gem";
};
version = "2.1.1";
};
rspec = {
dependencies = [
"rspec-core"
"rspec-expectations"
"rspec-mocks"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "14xrp8vq6i9zx37vh0yp4h9m0anx9paw200l1r5ad9fmq559346l";
type = "gem";
};
version = "3.13.0";
};
rspec-core = {
dependencies = [ "rspec-support" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1r6zbis0hhbik1ck8kh58qb37d1qwij1x1d2fy4jxkzryh3na4r5";
type = "gem";
};
version = "3.13.3";
};
rspec-expectations = {
dependencies = [
"diff-lcs"
"rspec-support"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1n7cb6szws90hxbzqrfybs4rj1xb0vhn24xa4l5r1vnzcnblahsf";
type = "gem";
};
version = "3.13.4";
};
rspec-mocks = {
dependencies = [
"diff-lcs"
"rspec-support"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "14xr5bq7s80hm97fcp3pvk4v515qfw3lrlsf20idalwwf6h5icbb";
type = "gem";
};
version = "3.13.4";
};
rspec-support = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0hrzdcklbl8pv721cq906yfl38fmqmlnh33ff8l752z1ys9y6q9a";
type = "gem";
};
version = "3.13.3";
};
ruby2_keywords = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
type = "gem";
};
version = "0.0.5";
};
securerandom = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1cd0iriqfsf1z91qg271sm88xjnfd92b832z49p1nd542ka96lfc";
type = "gem";
};
version = "0.4.1";
};
sequel = {
dependencies = [ "bigdecimal" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0ga49hliy5alb1x42mvpkmasqv71rhm4081zv5gpwr5q8lcsc1nb";
type = "gem";
};
version = "5.92.0";
};
sinatra = {
dependencies = [
"logger"
"mustermann"
"rack"
"rack-protection"
"rack-session"
"tilt"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "002dkzdc1xqhvz5sdnj4vb0apczhs07mnpgq4kkd5dd1ka2pp6af";
type = "gem";
};
version = "4.1.1";
};
sinatra-contrib = {
dependencies = [
"multi_json"
"mustermann"
"rack-protection"
"sinatra"
"tilt"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1giziwf8mgki581jf40zzw3dhjkkmdg3yxbrahj9krd5h24vb90y";
type = "gem";
};
version = "4.1.1";
};
sinatra-session = {
dependencies = [ "sinatra" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "183xl8i4d2hc03afd1i52gwn2xi3vzrv02g22llhfy5wkmm44gmq";
type = "gem";
};
version = "1.0.0";
};
tilt = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0szpapi229v3scrvw1pgy0vpjm7z3qlf58m1198kxn70cs278g96";
type = "gem";
};
version = "2.6.0";
};
timeout = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "03p31w5ghqfsbz5mcjzvwgkw3h9lbvbknqvrdliy8pxmn9wz02cm";
type = "gem";
};
version = "0.4.3";
};
tzinfo = {
dependencies = [ "concurrent-ruby" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
type = "gem";
};
version = "2.0.6";
};
uri = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "04bhfvc25b07jaiaf62yrach7khhr5jlr5bx6nygg8pf11329wp9";
type = "gem";
};
version = "1.0.3";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
bundlerApp,
bundlerUpdateScript,
withPostgresql ? true,
libpq,
withSqlite ? false,
sqlite,
}:
bundlerApp {
pname = "ledger_web";
gemdir = ./.;
exes = [ "ledger_web" ];
buildInputs = lib.optional withPostgresql libpq ++ lib.optional withSqlite sqlite;
passthru.updateScript = bundlerUpdateScript "ledger-web";
meta = with lib; {
description = "Web frontend to the Ledger CLI tool";
homepage = "https://github.com/peterkeen/ledger-web";
license = licenses.mit;
maintainers = with maintainers; [
peterhoeg
manveru
nicknovitski
];
platforms = platforms.linux;
mainProgram = "ledger_web";
};
}

View File

@@ -0,0 +1,140 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch2,
cmake,
boost,
gmp,
mpfr,
libedit,
python3,
gpgme,
installShellFiles,
texinfo,
gnused,
versionCheckHook,
nix-update-script,
usePython ? false,
gpgmeSupport ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ledger";
version = "3.3.2";
src = fetchFromGitHub {
owner = "ledger";
repo = "ledger";
tag = "v${finalAttrs.version}";
hash = "sha256-Uym4s8EyzXHlISZqThcb6P1H5bdgD9vmdIOLkk5ikG0=";
};
# by default, it will query the python interpreter for it's sitepackages location
# however, that would write to a different nixstore path, pass our own sitePackages location
prePatch = lib.optionalString usePython ''
substituteInPlace src/CMakeLists.txt \
--replace-fail 'DESTINATION ''${Python_SITEARCH}' 'DESTINATION "${placeholder "py"}/${python3.sitePackages}"'
'';
patches = [
(fetchpatch2 {
name = "ledger-boost-1.85-compat.patch";
url = "https://github.com/ledger/ledger/commit/46207852174feb5c76c7ab894bc13b4f388bf501.patch";
hash = "sha256-X0NSN60sEFLvcfMmtVoxC7fidcr5tJUlFVQ/E8qfLss=";
})
(fetchpatch2 {
name = "ledger-boost-1.86-compat-1.patch";
url = "https://github.com/ledger/ledger/commit/f6750ed89b46926d1f0859f3b25d18ed62ac219e.patch";
hash = "sha256-pktwotuMbZcR2DpZccMqV13524avKvazDX/+Ki6h69g=";
})
(fetchpatch2 {
name = "ledger-boost-1.86-compat-2.patch";
url = "https://github.com/ledger/ledger/commit/62f626fa73bd6832028f43c204c43cf15bd5f409.patch";
hash = "sha256-cazhSxadNpiA6ofZxS8JALOPy88cNPM/jKHaUYk8pBw=";
})
(fetchpatch2 {
name = "ledger-boost-1.86-compat-3.patch";
url = "https://github.com/ledger/ledger/commit/124398c35be573324cf2384c08b99b4476f29e2b.patch";
hash = "sha256-N3dUrqNsOiVgedoYmyfYllK+4lvKdMxc8iq0+DgEbxc=";
})
];
outputs = [
"out"
"dev"
]
++ lib.optionals usePython [ "py" ];
buildInputs = [
gmp
mpfr
libedit
gnused
]
++ lib.optionals gpgmeSupport [
gpgme
]
++ (
if usePython then
[
python3
(boost.override {
enablePython = true;
python = python3;
})
]
else
[ boost ]
);
nativeBuildInputs = [
cmake
texinfo
installShellFiles
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
(lib.cmakeBool "BUILD_DOCS" true)
(lib.cmakeBool "USE_PYTHON" usePython)
(lib.cmakeBool "USE_GPGME" gpgmeSupport)
# CMake 4 dropped support of versions lower than 3.5, and versions
# lower than 3.10 are deprecated.
(lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.10")
];
installTargets = [
"doc"
"install"
];
postInstall = ''
installShellCompletion --cmd ledger --bash $src/contrib/ledger-completion.bash
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Double-entry accounting system with a command-line reporting interface";
mainProgram = "ledger";
homepage = "https://www.ledger-cli.org/";
changelog = "https://github.com/ledger/ledger/raw/v${finalAttrs.version}/NEWS.md";
license = lib.licenses.bsd3;
longDescription = ''
Ledger is a powerful, double-entry accounting system that is accessed
from the UNIX command-line. This may put off some users, as there is
no flashy UI, but for those who want unparalleled reporting access to
their data, there really is no alternative.
'';
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ jwiegley ];
};
})

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
perlPackages,
beancount,
}:
let
perlDeps = with perlPackages; [
DateCalc
DateTimeFormatStrptime
enum
FileBaseDir
GetoptLongDescriptive
ListMoreUtils
RegexpCommon
StringInterpolate
YAMLLibYAML
];
in
stdenv.mkDerivation rec {
pname = "ledger2beancount";
version = "2.7";
src = fetchFromGitHub {
owner = "beancount";
repo = "ledger2beancount";
rev = version;
sha256 = "sha256-2LIP3ljK1HMAwjk2ueIf9pFL+UUnGDgx9GYNtRztdFY=";
};
dontBuild = true;
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
perlPackages.perl
beancount
]
++ perlDeps;
makeFlags = [ "prefix=$(out)" ];
installFlags = [ "INSTALL=install" ];
installPhase = ''
mkdir -p $out
cp -r $src/bin $out/bin
'';
postFixup = ''
wrapProgram "$out/bin/ledger2beancount" \
--set PERL5LIB "${perlPackages.makeFullPerlPath perlDeps}"
'';
meta = with lib; {
description = "Ledger to Beancount text-based converter";
longDescription = ''
A script to automatically convert Ledger-based textual ledgers to Beancount ones.
Conversion is based on (concrete) syntax, so that information that is not meaningful for accounting reasons but still valuable (e.g., comments, formatting, etc.) can be preserved.
'';
homepage = "https://github.com/beancount/ledger2beancount";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ pablovsky ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
ocamlPackages,
}:
stdenv.mkDerivation {
pname = "ledit";
version = "2.06";
src = fetchFromGitHub {
owner = "chetmurthy";
repo = "ledit";
rev = "3dbd668d9c69aab5ccd61f6b906c14122ae3271d";
hash = "sha256-9+isvwOw5Iw5OToztqZ5PiQPj6Pxl2ZqAC7UMF+tCM4=";
};
preBuild = ''
substituteInPlace Makefile --replace /bin/rm rm --replace /usr/local/ $out/
'';
strictDeps = true;
nativeBuildInputs = with ocamlPackages; [
ocaml
findlib
camlp5
];
buildInputs = with ocamlPackages; [
camlp5
camlp-streams
];
meta = with lib; {
homepage = "http://pauillac.inria.fr/~ddr/ledit/";
description = "Line editor, allowing to use shell commands with control characters like in emacs";
license = licenses.bsd3;
maintainers = [ maintainers.delta ];
mainProgram = "ledit";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
udev,
sg3_utils,
}:
stdenv.mkDerivation rec {
pname = "ledmon";
version = "0.92";
src = fetchFromGitHub {
owner = "intel";
repo = "ledmon";
rev = "v${version}";
sha256 = "1lz59606vf2sws5xwijxyffm8kxcf8p9qbdpczsq1b5mm3dk6lvp";
};
nativeBuildInputs = [
perl # for pod2man
];
buildInputs = [
udev
sg3_utils
];
installTargets = [
"install"
"install-systemd"
];
makeFlags = [
"MAN_INSTDIR=${placeholder "out"}/share/man"
"SYSTEMD_SERVICE_INSTDIR=${placeholder "out"}/lib/systemd/system"
"LEDCTL_INSTDIR=${placeholder "out"}/sbin"
"LEDMON_INSTDIR=${placeholder "out"}/sbin"
];
meta = with lib; {
homepage = "https://github.com/intel/ledmon";
description = "Enclosure LED Utilities";
platforms = platforms.linux;
license = with licenses; [ gpl2Only ];
maintainers = with lib.maintainers; [ sorki ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
poppler,
}:
stdenv.mkDerivation {
pname = "leela";
version = "12.fe7a35a";
src = fetchFromGitHub {
owner = "TrilbyWhite";
repo = "Leela";
rev = "576a60185b191d3a3030fef10492fe32d2125563";
sha256 = "1k6n758r9dhjmc1pnpk6qzpg0q7pkq2hf18z3b0s2z198jpkg9s3";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ poppler ];
installFlags = [
"PREFIX=$(out)"
"MANDIR=$(out)/share/man"
];
meta = {
description = "CLI frontend to the poppler-glib library of PDF tools";
homepage = "https://github.com/TrilbyWhite/Leela";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.puffnfresh ];
platforms = lib.platforms.linux;
mainProgram = "leela";
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
fetchCrate,
rustPlatform,
pkg-config,
installShellFiles,
openssl,
dbus,
sqlite,
stdenv,
testers,
leetcode-cli,
}:
rustPlatform.buildRustPackage rec {
pname = "leetcode-cli";
version = "0.4.7";
src = fetchCrate {
inherit pname version;
hash = "sha256-zxaBSZS2mlGaKT+AN4oS8eJmoLdVe2/T/G41ERj3gDg=";
};
cargoHash = "sha256-JsWMQp93fGXitnZ9LLGD9dZddc6Z7jRuAyx6HreV+XM=";
nativeBuildInputs = [
pkg-config
installShellFiles
];
buildInputs = [
openssl
dbus
sqlite
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd leetcode \
--bash <($out/bin/leetcode completions bash) \
--fish <($out/bin/leetcode completions fish) \
--zsh <($out/bin/leetcode completions zsh)
'';
passthru.tests = testers.testVersion {
package = leetcode-cli;
command = "leetcode -V";
version = "leetcode ${version}";
};
meta = with lib; {
description = "Leetcode CLI utility";
homepage = "https://github.com/clearloop/leetcode-cli";
license = licenses.mit;
maintainers = with maintainers; [ congee ];
mainProgram = "leetcode";
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "leetgo";
version = "1.4.15";
src = fetchFromGitHub {
owner = "j178";
repo = "leetgo";
rev = "v${version}";
hash = "sha256-9GM4V7NOYMsvWwBgJSnGl4/S+UexdlVL/NyIiMRnL8A=";
};
vendorHash = "sha256-I3H2uVIvOGM6aQelM/69LpwJvg3TBZwq3i4R913etH4=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X=github.com/j178/leetgo/constants.Version=${version}"
];
subPackages = [ "." ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd leetgo \
--bash <($out/bin/leetgo completion bash) \
--fish <($out/bin/leetgo completion fish) \
--zsh <($out/bin/leetgo completion zsh)
'';
meta = {
description = "Command-line tool for LeetCode";
homepage = "https://github.com/j178/leetgo";
changelog = "https://github.com/j178/leetgo/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ Ligthiago ];
mainProgram = "leetgo";
};
}

View File

@@ -0,0 +1,55 @@
{
stdenvNoCC,
lib,
fetchurl,
buildFHSEnv,
}:
let
version = "2.3";
# Unwrapped package, for putting into the FHS env
left4gore-unwrapped = stdenvNoCC.mkDerivation {
pname = "left4gore-unwrapped";
inherit version;
src = fetchurl {
url = "http://www.left4gore.com/dist/left4gore-${version}-linux.tar.gz";
sha256 = "1n57nh32ybn6kirn8djh0nsjx6m84c0jfi1x8r4w2qr0qky3z7p0";
};
installPhase = ''
mkdir -p $out/bin
cp left4gore $out/bin
'';
};
# FHS env, as patchelf will not work
env = buildFHSEnv {
pname = "left4gore-env";
inherit version;
targetPkgs = _: [ left4gore-unwrapped ];
runScript = "left4gore";
};
in
stdenvNoCC.mkDerivation {
pname = "left4gore";
inherit version;
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
installPhase = ''
mkdir -p $out/bin
ln -s ${env}/bin/* $out/bin/left4gore
'';
meta = with lib; {
homepage = "http://www.left4gore.com";
description = "Memory patcher which adds the gore back into Left 4 Dead 2";
license = licenses.unfree; # Probably the best choice
maintainers = with maintainers; [ das_j ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
let
pname = "lefthook";
version = "1.13.4";
in
buildGoModule {
inherit pname version;
src = fetchFromGitHub {
owner = "evilmartians";
repo = "lefthook";
rev = "v${version}";
hash = "sha256-/ZZ+eFHKQoqOzUNpTZ1Ef2A0EQbgT+CWau/q9hhuTHU=";
};
vendorHash = "sha256-HQ6xpHYAOkT48UvOIf0g49jp5dt/4zuwmy8r/9KAZUk=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
];
doCheck = false;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd lefthook \
--bash <($out/bin/lefthook completion bash) \
--fish <($out/bin/lefthook completion fish) \
--zsh <($out/bin/lefthook completion zsh)
'';
meta = {
description = "Fast and powerful Git hooks manager for any type of projects";
homepage = "https://github.com/evilmartians/lefthook";
changelog = "https://github.com/evilmartians/lefthook/raw/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
mainProgram = "lefthook";
maintainers = [ ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage {
pname = "leftwm-config";
version = "0-unstable-2024-03-13";
src = fetchFromGitHub {
owner = "leftwm";
repo = "leftwm-config";
rev = "a9f2f21ece3a01d6c36610295ae3163644d3f99e";
hash = "sha256-wyb/26EyNyBJeTDUvnMxlMiQjaCGBES8t4VteNY1I/A=";
};
cargoHash = "sha256-FiM51ZV61aCFWHyNIudQl1B7X5ov0SXyWIVE4am1Vmw=";
meta = {
description = "Little satellite utility for LeftWM";
homepage = "https://github.com/leftwm/leftwm-config";
maintainers = with lib.maintainers; [ denperidge ];
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchFromGitHub,
rustPlatform,
openssl,
pkg-config,
}:
rustPlatform.buildRustPackage {
pname = "leftwm-theme";
version = "unstable-2024-03-05";
src = fetchFromGitHub {
owner = "leftwm";
repo = "leftwm-theme";
rev = "b394824ff874b269a90c29e2d45b0cacc4d209f5";
hash = "sha256-cV4tY1qKNluSSGf+WwKFK3iVE7cMevafl6qQvhy1flE=";
};
cargoHash = "sha256-v3PHMaXJCEBiCd+78b/BXRooZC4Py82gDcvA/efNJ7w=";
checkFlags = [
# direct writing /tmp
"--skip=models::config::test::test_config_new"
# with network access when testing
"--skip=operations::update::test::test_update_repos"
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
env = {
OPENSSL_NO_VENDOR = 1;
};
meta = {
description = "Theme manager for LeftWM";
homepage = "https://github.com/leftwm/leftwm-theme";
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ denperidge ];
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
fetchFromGitHub,
rustPlatform,
libX11,
libXinerama,
}:
let
rpathLibs = [
libXinerama
libX11
];
in
rustPlatform.buildRustPackage rec {
pname = "leftwm";
version = "0.5.4";
src = fetchFromGitHub {
owner = "leftwm";
repo = "leftwm";
tag = version;
hash = "sha256-eH7HuGZnWlXigTaUAc4S00+uOIEVftnBOD8x03KJLaE=";
};
cargoHash = "sha256-nFyhpCp8xsYjRl+2bqPfWzq31pM/yYcDuxkWEjjcqwA=";
buildInputs = rpathLibs;
postInstall = ''
for p in $out/bin/left*; do
patchelf --set-rpath "${lib.makeLibraryPath rpathLibs}" $p
done
install -D -m 0555 leftwm/doc/leftwm.1 $out/share/man/man1/leftwm.1
'';
dontPatchELF = true;
meta = {
description = "Tiling window manager for the adventurer";
homepage = "https://github.com/leftwm/leftwm";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
vuimuich
yanganto
];
changelog = "https://github.com/leftwm/leftwm/blob/${version}/CHANGELOG.md";
mainProgram = "leftwm";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
rustPlatform,
fetchFromGitHub,
cmake,
pkg-config,
openssl,
samba,
}:
rustPlatform.buildRustPackage rec {
pname = "legba";
version = "0.11.0";
src = fetchFromGitHub {
owner = "evilsocket";
repo = "legba";
rev = "v${version}";
hash = "sha256-iynUReIWebfBkmWxbajsKbdfWSy+fzqF3NNssjtshYY=";
};
cargoHash = "sha256-clqOTFUOxZ1yt2YVgVDvsq2MhwMH7/s+jHSwt3buXgU=";
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
openssl.dev
samba
];
# Paho C test fails due to permission issue
doCheck = false;
meta = {
description = "Multiprotocol credentials bruteforcer / password sprayer and enumerator";
homepage = "https://github.com/evilsocket/legba";
changelog = "https://github.com/evilsocket/legba/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ mikaelfangel ];
mainProgram = "legba";
};
}

View File

@@ -0,0 +1,142 @@
{
lib,
stdenv,
fetchFromGitHub,
pnpm,
nodejs,
electron,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
autoPatchelfHook,
pipewire,
libpulseaudio,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "legcord";
version = "1.1.5";
src = fetchFromGitHub {
owner = "Legcord";
repo = "Legcord";
tag = "v${finalAttrs.version}";
hash = "sha256-6egqI1JhnRc8YwzAvyy4Xg9Z9dEfG7wIbMfUgQ+4IBA=";
};
nativeBuildInputs = [
pnpm.configHook
nodejs
# we use a script wrapper here for environment variable expansion at runtime
# https://github.com/NixOS/nixpkgs/issues/172583
makeWrapper
copyDesktopItems
# legcord uses venmic, which is a shipped as a prebuilt node module
# and needs to be patched
autoPatchelfHook
];
buildInputs = [
libpulseaudio
pipewire
(lib.getLib stdenv.cc.cc)
];
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-nobOORfhwlGEvNt+MfDKd3rXor6tJHDulz5oD1BGY4I=";
};
buildPhase = ''
runHook preBuild
pnpm build
# Replicating the build step to copy venmic from the vendored node module manually,
# since the install script does not do this for whatever reason
cp ./node_modules/@vencord/venmic/prebuilds/venmic-addon-linux-x64/node-napi-v7.node ./dist/venmic-x64.node
cp ./node_modules/@vencord/venmic/prebuilds/venmic-addon-linux-arm64/node-napi-v7.node ./dist/venmic-arm64.node
# Patch venmic before putting it into the ASAR archive
autoPatchelf ./dist
pnpm exec electron-builder \
--dir \
-c.asarUnpack="**/*.node" \
-c.electronDist="${electron.dist}" \
-c.electronVersion="${electron.version}"
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/share/lib/legcord"
cp -r ./dist/*-unpacked/{locales,resources{,.pak}} "$out/share/lib/legcord"
install -Dm644 "build/icon.png" "$out/share/icons/hicolor/256x256/apps/legcord.png"
# use makeShellWrapper (instead of the makeBinaryWrapper provided by wrapGAppsHook3) for proper shell variable expansion
# see https://github.com/NixOS/nixpkgs/issues/172583
makeShellWrapper "${lib.getExe electron}" "$out/bin/legcord" \
--add-flags "$out/share/lib/legcord/resources/app.asar" \
"''${gappsWrapperArgs[@]}" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=UseOzonePlatform,WaylandWindowDecorations,WebRTCPipeWireCapturer --enable-wayland-ime=true}}" \
--set-default ELECTRON_IS_DEV 0 \
--inherit-argv0
runHook postInstall
'';
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
};
desktopItems = [
(makeDesktopItem {
name = "legcord";
genericName = "Internet Messenger";
desktopName = "Legcord";
exec = "legcord %U";
icon = "legcord";
comment = finalAttrs.meta.description;
keywords = [
"discord"
"vencord"
"electron"
"chat"
];
categories = [
"Network"
"InstantMessaging"
"Chat"
];
startupWMClass = "Legcord";
terminal = false;
})
];
passthru = {
inherit (finalAttrs) pnpmDeps;
updateScript = nix-update-script { };
};
meta = {
description = "Lightweight, alternative desktop client for Discord";
homepage = "https://legcord.app";
downloadPage = "https://github.com/Legcord/Legcord";
license = lib.licenses.osl3;
maintainers = with lib.maintainers; [
wrmilling
water-sucks
nyabinary
];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
mainProgram = "legcord";
};
})

View File

@@ -0,0 +1,183 @@
{
lib,
stdenv,
runCommand,
megacmd,
unzip,
makeWrapper,
autoPatchelfHook,
makeDesktopItem,
copyDesktopItems,
libgcc,
cairo,
dbus,
xorg_sys_opengl,
systemd,
libcap,
libdrm,
pulseaudio,
libsndfile,
flac,
glib,
libvorbis,
libopus,
mpg123,
lame,
libGL,
vulkan-loader,
libasyncns,
pango,
xorg,
wayland,
}:
let
pname = "legends-of-equestria";
version = "2025.04.001";
description = "Free-to-play MMORPG";
srcOptions = {
x86_64-linux = {
url = "https://mega.nz/file/w7BQTCAD#zW1atRLzSd1-V8GV7s7yj_HVZwB4v8zuX3aWIjA0ztc";
outputHash = "YYPxS/qNl/DvNmiGZorRGoONbtAI3nJslqCRzctwoz8=";
};
x86_64-darwin = {
url = "https://mega.nz/file/IqgBEJTD#aUd6LgigncoQ8o3owSkadYRp7GkfIOWl4B1Hwzti1qk";
outputHash = "XdcHM6zCDNFU5VJo3/QISuhtYnBKm1f6IEDfy6Fjnp8=";
};
aarch64-darwin = {
url = "https://mega.nz/file/QyZnkYYB#EtAZrVdHgqX10ag09M9nhJVEboG0J_5f_nVKxCHskYg";
outputHash = "GA0Zin+vlgYfBFC1ZbkkgX1eSn/NVBYuxuv8fayXMLU=";
};
};
runtimeDeps = [
dbus.lib
xorg_sys_opengl
systemd
libcap.lib
libdrm
pulseaudio
libsndfile
flac
libvorbis
mpg123
lame.lib
libGL
vulkan-loader
libasyncns
]
++ (with xorg; [
libX11
libxcb
libXau
libXdmcp
libXext
libXcursor
libXrender
libXfixes
libXinerama
libXi
libXrandr
libXScrnSaver
]);
in
stdenv.mkDerivation {
inherit pname version;
src =
runCommand "mega-loe"
(
srcOptions.${stdenv.hostPlatform.system}
// {
pname = "${pname}-source";
inherit version;
nativeBuildInputs = [
megacmd
unzip
];
outputHashAlgo = "sha256";
outputHashMode = "recursive";
}
)
''
export HOME=$(mktemp -d)
dest=$HOME/mega-loe
mkdir -p $dest
mega-get "$url" $dest
mkdir -p $out
unzip -d $out $dest/*.zip
'';
dontBuild = true;
buildInputs = [
libgcc
]
++ lib.optionals stdenv.hostPlatform.isLinux [
cairo
dbus
glib
pango
wayland
];
nativeBuildInputs = [
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
autoPatchelfHook
];
installPhase =
if stdenv.hostPlatform.isLinux then
''
runHook preInstall
loeHome=$out/lib/${pname}
mkdir -p $loeHome
cp -r LoE/* $loeHome
chmod +x $loeHome/LoE.x86_64
makeWrapper $loeHome/LoE.x86_64 $out/bin/LoE \
--suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
icon=$out/share/icons/hicolor/128x128/apps/legends-of-equestria.png
mkdir -p $(dirname $icon)
ln -s $loeHome/LoE_Data/Resources/UnityPlayer.png $icon
runHook postInstall
''
else
''
runHook preInstall
mkdir -p $out/Applications
cp -r *.app $out/Applications
runHook postInstall
'';
passthru.updateScript = ./update.sh;
desktopItems = [
(makeDesktopItem {
name = "legends-of-equestria";
comment = description;
desktopName = "Legends of Equestria";
genericName = "Legends of Equestria";
exec = "LoE";
icon = "legends-of-equestria";
categories = [ "Game" ];
})
];
meta = {
inherit description;
license = lib.licenses.unfree;
platforms = lib.attrNames srcOptions;
maintainers = with lib.maintainers; [ ulysseszhan ];
mainProgram = "LoE";
homepage = "https://www.legendsofequestria.com";
downloadPage = "https://www.legendsofequestria.com/downloads";
};
}

View File

@@ -0,0 +1,64 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl megacmd unzip common-updater-scripts
set -eu -o pipefail
ATTR=legends-of-equestria
DOWNLOADS_PAGE="$(curl -s "$(nix-instantiate --eval -A "$ATTR.meta.downloadPage" | tr -d '"')")"
OLD_VERSION="$(nix-instantiate --eval -A "$ATTR.version" | tr -d '"')"
NIX_FILE="$(nix-instantiate --eval -A "$ATTR.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')"
TMP=$(mktemp -d)
findHash() {
system=$1
url="$2"
mkdir -p $TMP/$system/{download,out}
oldpwd="$(pwd)"
cd $TMP/$system
echo "downloading to $(pwd)/download..." >&2
HOME=$TMP mega-get "$url" download >&2
echo "unzipping to $(pwd)/out..." >&2
unzip -q -d out download/*.zip
nix --extra-experimental-features nix-command hash path --sri out
cd "$oldpwd"
}
applyUpdate() {
system=$1
echo "checking for updates for $system..." >&2
systemText="$2"
regex='<a href="(https[^"]+)">'"$systemText"'</a>.+v(([0-9]+\.)+[0-9]+)'
mapfile -t matches < <(echo "$DOWNLOADS_PAGE" | grep -Fi "$systemText")
for ((i=${#matches[@]}-1; i>=0; i--)); do
if [[ ${matches[i]} =~ $regex ]]; then
url="${BASH_REMATCH[1]}"
version="${BASH_REMATCH[2]}"
echo "$version $url" >&2
break
fi
done
if [[ -z $url || -z $version ]]; then
echo "cannot find the latest version for $system" >&2
exit 1
fi
if [[ $OLD_VERSION == $version ]]; then
echo "already up-to-date at version $version" >&2
exit 0
fi
hash="$(findHash $system "$url" | sed -E 's/sha256-(.+)/\1/')"
echo "output hash: $hash" >&2
oldUrl="$(nix-instantiate --system $system --eval -A $ATTR.src.url | tr -d '"')"
oldHash="$(nix-instantiate --system $system --eval -A $ATTR.src.outputHash | tr -d '"')"
sed -i "s|$OLD_VERSION|$version|; s|$oldUrl|$url|; s|$oldHash|$hash|" "$NIX_FILE"
}
applyUpdate x86_64-linux Linux
applyUpdate x86_64-darwin macOS
applyUpdate aarch64-darwin "macOS arm64"

View File

@@ -0,0 +1,38 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
}:
buildGoModule rec {
pname = "legit";
version = "0.2.4";
src = fetchFromGitHub {
repo = "legit";
owner = "icyphox";
rev = "v${version}";
hash = "sha256-2XeIAeneSKf8TSWOunvRJ7N+3IrmOUjS79ZubsGne9E=";
};
vendorHash = "sha256-4XplNx+Pyv6dn+ophBFxQ3lv3xAf1jP2DpLYX1RenvQ=";
postInstall = ''
mkdir -p $out/lib/legit/templates
mkdir -p $out/lib/legit/static
cp -r $src/templates/* $out/lib/legit/templates
cp -r $src/static/* $out/lib/legit/static
'';
passthru.tests = { inherit (nixosTests) legit; };
meta = {
description = "Web frontend for git";
homepage = "https://github.com/icyphox/legit";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.ratsclub ];
mainProgram = "legit";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
python3Packages,
fetchPypi,
writableTmpDirAsHomeHook,
}:
python3Packages.buildPythonApplication rec {
pname = "legit";
version = "1.2.0.post0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-lJOWtoApqK9AWrIMkBkCNB72vVXH/sbatxFB1j1AaxE=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
click
clint
crayons
gitpython
six
];
nativeCheckInputs = [
writableTmpDirAsHomeHook
];
pythonImportsCheck = [ "legit" ];
meta = with lib; {
homepage = "https://github.com/frostming/legit";
description = "Git for Humans, Inspired by GitHub for Mac";
license = licenses.bsd3;
maintainers = with maintainers; [ ryneeverett ];
mainProgram = "legit";
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "legitify";
version = "1.0.11";
src = fetchFromGitHub {
owner = "Legit-Labs";
repo = "legitify";
tag = "v${version}";
hash = "sha256-ijW0vvamuqcN6coV5pAtmjAUjzNXxiqr2S9EwrNlrJc=";
};
vendorHash = "sha256-QwSh7+LuwdbBtrIGk3ZK6cMW9h7wzNArPT/lVZgUGBU=";
ldflags = [
"-w"
"-s"
"-X=github.com/Legit-Labs/legitify/internal/version.Version=${version}"
];
preCheck = ''
rm e2e/e2e_test.go # tests requires network
'';
meta = {
description = "Tool to detect and remediate misconfigurations and security risks of GitHub assets";
homepage = "https://github.com/Legit-Labs/legitify";
changelog = "https://github.com/Legit-Labs/legitify/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "legitify";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchFromGitHub,
buildGoModule,
nixosTests,
}:
buildGoModule rec {
pname = "lego";
version = "4.26.0";
src = fetchFromGitHub {
owner = "go-acme";
repo = "lego";
tag = "v${version}";
hash = "sha256-wSTymGprdoXxBRlGDapF5H8SMbBRTI24PMgakGetABI=";
};
vendorHash = "sha256-BdOS4BNWtonLoZO4YA85VdB6MRbMqoO8MGb4XNEwfCk=";
doCheck = false;
subPackages = [ "cmd/lego" ];
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
meta = with lib; {
description = "Let's Encrypt client and ACME library written in Go";
license = licenses.mit;
homepage = "https://go-acme.github.io/lego/";
teams = [ teams.acme ];
mainProgram = "lego";
};
passthru.tests = {
lego-http = nixosTests.acme.http01-builtin;
lego-dns = nixosTests.acme.dns01;
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
coreutils,
jdk,
rlwrap,
gnupg,
}:
let
pname = "leiningen";
version = "2.11.2";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchurl {
url = "https://codeberg.org/leiningen/leiningen/raw/tag/${version}/bin/lein-pkg";
hash = "sha256-KKGmJmjF9Ce0E6hnfjdq/6qZXwI7H80G4tTJisHfXz4=";
};
jarsrc = fetchurl {
url = "https://codeberg.org/leiningen/leiningen/releases/download/${version}/leiningen-${version}-standalone.jar";
hash = "sha256-fTGuI652npJ0OLDNVdFak+faurCf1PwVh3l5Fh4Qh3Q=";
};
JARNAME = "${pname}-${version}-standalone.jar";
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
propagatedBuildInputs = [ jdk ];
# the jar is not in share/java, because it's a standalone jar and should
# never be picked up by set-java-classpath.sh
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share
cp -v $src $out/bin/lein
cp -v $jarsrc $out/share/$JARNAME
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
chmod +x $out/bin/lein
patchShebangs $out/bin/lein
substituteInPlace $out/bin/lein \
--replace 'LEIN_JAR=/usr/share/java/leiningen-$LEIN_VERSION-standalone.jar' "LEIN_JAR=$out/share/$JARNAME"
wrapProgram $out/bin/lein \
--prefix PATH ":" "${
lib.makeBinPath [
rlwrap
coreutils
]
}" \
--set LEIN_GPG ${gnupg}/bin/gpg \
--set JAVA_CMD ${jdk}/bin/java
runHook postFixup
'';
meta = {
homepage = "https://leiningen.org/";
description = "Project automation for Clojure";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.epl10;
platforms = jdk.meta.platforms;
maintainers = with lib.maintainers; [ momeemt ];
mainProgram = "lein";
};
}

View File

@@ -0,0 +1,117 @@
{
lib,
fetchFromGitHub,
fetchNpmDeps,
fetchPypi,
fetchpatch,
nodejs,
npmHooks,
python3,
}:
let
python = python3.override {
self = python;
packageOverrides = self: super: {
mistune = super.mistune.overridePythonAttrs (old: rec {
version = "2.0.5";
src = fetchPypi {
inherit (old) pname;
inherit version;
hash = "sha256-AkYRPLJJLbh1xr5Wl0p8iTMzvybNkokchfYxUc7gnTQ=";
};
});
};
};
in
python.pkgs.buildPythonApplication rec {
pname = "lektor";
version = "3.4.0b12";
format = "pyproject";
src = fetchFromGitHub {
owner = "lektor";
repo = "lektor";
tag = "v${version}";
# fix for case-insensitive filesystems
postFetch = ''
rm -f $out/tests/demo-project/content/icc-profile-test/{LICENSE,license}.txt
'';
hash = "sha256-y0/fYuiIB/O5tsYKjzOPnCafOIZCn4Z5OITPMcnHd/M=";
};
patches = [
# Fixes test_thumbnail.py with Pillow 11.0
# see lektor/lektor #1202
(fetchpatch {
name = "lektor-pillow-11.patch";
url = "https://github.com/lektor/lektor/commit/af99ea4265e05227d7452977949475196a58edfa.patch";
hash = "sha256-PmSmX9Ku5rAzN2FzLwvXYeUqN683opLRt9J35w56cfg=";
})
];
npmDeps = fetchNpmDeps {
src = "${src}/${npmRoot}";
hash = "sha256-LXe5/u4nAGig8RSu6r8Qsr3p3Od8eoMxukW8Z4HkJ44=";
};
npmRoot = "frontend";
nativeBuildInputs = [
python.pkgs.hatch-vcs
python.pkgs.hatchling
nodejs
npmHooks.npmConfigHook
];
propagatedBuildInputs = with python.pkgs; [
babel
click
flask
inifile
jinja2
markupsafe
marshmallow
marshmallow-dataclass
mistune
pillow
pip
python-slugify
requests
watchfiles
werkzeug
];
nativeCheckInputs = with python.pkgs; [
pytest-click
pytest-mock
pytestCheckHook
];
postInstall = ''
cp -r lektor/translations "$out/${python.sitePackages}/lektor/"
'';
pythonImportsCheck = [
"lektor"
];
disabledTests = [
# Tests require network access
"test_path_installed_plugin_is_none"
"test_VirtualEnv_run_pip_install"
];
postCheck = ''
make test-js
'';
meta = {
description = "Static content management system";
homepage = "https://www.getlektor.com/";
changelog = "https://github.com/lektor/lektor/blob/v${version}/CHANGES.md";
license = lib.licenses.bsd3;
mainProgram = "lektor";
maintainers = [ ];
};
}

View File

@@ -0,0 +1,37 @@
{
autoreconfHook,
fetchFromGitLab,
lib,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lely-core";
version = "2.3.5";
nativeBuildInputs = [
autoreconfHook
];
src = fetchFromGitLab {
owner = "lely_industries";
repo = "lely-core";
tag = "v${finalAttrs.version}";
hash = "sha256-PuNE/lKsNNd4KDEcSsaz+IfP2hgT5M5VgLY1kVy1KCc=";
};
outputs = [
"out"
"dev"
"lib"
];
meta = {
description = "High Performance I/O and sensor/actuator control for robotics and IoT applications";
homepage = "https://opensource.lely.com/canopen/";
changelog = "https://opensource.lely.com/canopen/release/v${finalAttrs.version}/";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ aiyion ];
};
})

View File

@@ -0,0 +1,29 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "lemmeknow";
version = "0.8.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-Q82tP4xNWAooFjHeJCFmuULnWlFbgca/9Y2lm8rVXKs=";
};
cargoHash = "sha256-65PPIYfwVO8O4K8yr499vRQScpAREiBZ8O0rrDMCXB8=";
meta = {
description = "Tool to identify anything";
homepage = "https://github.com/swanandx/lemmeknow";
changelog = "https://github.com/swanandx/lemmeknow/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
figsoda
Br1ght0ne
];
mainProgram = "lemmeknow";
};
}

View File

@@ -0,0 +1,132 @@
{
lib,
fetchFromGitHub,
makeWrapper,
jdk_headless,
jre_minimal,
maven,
writeShellApplication,
curl,
pcre,
common-updater-scripts,
jq,
gnused,
}:
let
jre = jre_minimal.override {
modules = [
"java.base"
"java.logging"
"java.xml"
];
jdk = jdk_headless;
};
in
maven.buildMavenPackage rec {
pname = "lemminx";
version = "0.31.0";
src = fetchFromGitHub {
owner = "eclipse";
repo = "lemminx";
tag = version;
hash = "sha256-a+9RN1265fsmYAUMuUTxA+VqJv7xPlzuc8HqoZwmR4M=";
# Lemminx reads this git information at runtime from a git.properties
# file on the classpath
leaveDotGit = true;
postFetch = ''
cat > $out/org.eclipse.lemminx/src/main/resources/git.properties << EOF
git.build.version=${version}
git.commit.id.abbrev=$(git -C $out rev-parse --short HEAD)
git.commit.message.short=$(git -C $out log -1 --pretty=format:%s)
git.branch=main
EOF
rm -rf $out/.git
'';
};
mvnJdk = jdk_headless;
mvnHash = "sha256-0KnaXr5Mmwm0pV4o5bAX0MWKl6f/cvlO6cyV9UcgXeo=";
# Disable gitcommitid plugin which needs a .git folder which we don't have.
# Disable failing tests which either need internet access or are flaky.
mvnParameters = lib.escapeShellArgs [
"-Dmaven.gitcommitid.skip=true"
"-Dtest=!XMLValidationCommandTest,
!XMLValidationExternalResourcesBasedOnDTDTest,
!XMLSchemaPublishDiagnosticsTest,
!PlatformTest,
!XMLValidationExternalResourcesBasedOnXSDTest,
!XMLExternalTest,
!XMLSchemaCompletionExtensionsTest,
!XMLSchemaDiagnosticsTest,
!MissingChildElementCodeActionTest,
!XSDValidationExternalResourcesTest,
!DocumentLifecycleParticipantTest,
!DTDValidationExternalResourcesTest,
!DTDHoverExtensionsTest,
!CacheResourcesManagerTest"
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share
install -Dm644 org.eclipse.lemminx/target/org.eclipse.lemminx-uber.jar $out/share
makeWrapper ${jre}/bin/java $out/bin/lemminx \
--add-flags "-jar $out/share/org.eclipse.lemminx-uber.jar"
runHook postInstall
'';
nativeBuildInputs = [ makeWrapper ];
passthru = {
updateScript =
let
pkgFile = toString ./package.nix;
in
lib.getExe (writeShellApplication {
name = "update-${pname}";
runtimeInputs = [
curl
pcre
common-updater-scripts
jq
gnused
];
text = ''
if [ -z "''${GITHUB_TOKEN:-}" ]; then
echo "no GITHUB_TOKEN provided - you could meet API request limiting" >&2
fi
LATEST_TAG=$(curl -H "Accept: application/vnd.github+json" \
''${GITHUB_TOKEN:+-H "Authorization: bearer $GITHUB_TOKEN"} \
-Lsf https://api.github.com/repos/${src.owner}/${src.repo}/tags | \
jq -r '[.[] | select(.name | test("^[0-9]"))] | sort_by(.name | split(".") |
map(tonumber)) | reverse | .[0].name')
update-source-version ${pname} "$LATEST_TAG"
sed -i '0,/mvnHash *= *"[^"]*"/{s/mvnHash = "[^"]*"/mvnHash = ""/}' ${pkgFile}
echo -e "\nFetching all mvn dependencies to calculate the mvnHash. This may take a while ..."
nix-build -A ${pname}.fetchedMavenDeps 2> ${pname}-stderr.log || true
NEW_MVN_HASH=$(grep "got:" ${pname}-stderr.log | awk '{print ''$2}')
rm ${pname}-stderr.log
# escaping double quotes looks ugly but is needed for variable substitution
# use # instead of / as separator because the sha256 might contain the / character
sed -i "0,/mvnHash *= *\"[^\"]*\"/{s#mvnHash = \"[^\"]*\"#mvnHash = \"$NEW_MVN_HASH\"#}" ${pkgFile}
'';
});
};
meta = with lib; {
description = "XML Language Server";
mainProgram = "lemminx";
homepage = "https://github.com/eclipse/lemminx";
license = licenses.epl20;
maintainers = with maintainers; [ tricktron ];
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "lemmy-help";
version = "0.11.0";
src = fetchFromGitHub {
owner = "numToStr";
repo = "lemmy-help";
rev = "v${version}";
sha256 = "sha256-HcIvHuuzQj4HsRJyn1A9nXiGDGAcz1nqTsC7sROt7OI=";
};
buildFeatures = [ "cli" ];
cargoHash = "sha256-ZuLbdsZadEkY5M4LoHBn6gnKYklVbXpRa60EocYUH+A=";
meta = {
description = "CLI for generating vim help docs from emmylua comments";
longDescription = ''
`lemmy-help` is an emmylua parser as well as a CLI which takes that parsed tree and converts it into vim help docs.
'';
homepage = "https://github.com/numToStr/lemmy-help";
changelog = "https://github.com/numToStr/lemmy-help/releases/tag/v${version}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ figsoda ];
mainProgram = "lemmy-help";
};
}

View File

@@ -0,0 +1,95 @@
From 0073156cc16cecc597902e9294e4996dafacc1a3 Mon Sep 17 00:00:00 2001
From: hiaselhans <simon.klemenc@gmail.com>
Date: Wed, 21 May 2025 08:12:37 +0200
Subject: [PATCH] update cmake to work with newer versions
---
.gitignore | 1 +
CMakeLists.txt | 61 +++++++++-----------------------------------------
2 files changed, 11 insertions(+), 51 deletions(-)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c795b05
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+build
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 03e1cc7..26ec718 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,61 +1,20 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-
-CMAKE_POLICY(SET CMP0048 OLD)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.12...5.0)
SET(PROJECT_NAME "LEMON")
-PROJECT(${PROJECT_NAME})
-
-INCLUDE(FindPythonInterp)
-INCLUDE(FindWget)
-IF(EXISTS ${PROJECT_SOURCE_DIR}/cmake/version.cmake)
- INCLUDE(${PROJECT_SOURCE_DIR}/cmake/version.cmake)
-ELSEIF(DEFINED ENV{LEMON_VERSION})
+IF(DEFINED ENV{LEMON_VERSION})
SET(LEMON_VERSION $ENV{LEMON_VERSION} CACHE STRING "LEMON version string.")
+ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/cmake/version.cmake)
+ INCLUDE(${CMAKE_SOURCE_DIR}/cmake/version.cmake)
ELSE()
- EXECUTE_PROCESS(
- COMMAND
- hg log -r. --template "{latesttag}"
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE HG_REVISION_TAG
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- EXECUTE_PROCESS(
- COMMAND
- hg log -r. --template "{latesttagdistance}"
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE HG_REVISION_DIST
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- EXECUTE_PROCESS(
- COMMAND
- hg log -r. --template "{node|short}"
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- OUTPUT_VARIABLE HG_REVISION_ID
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
+ MESSAGE(FATAL_ERROR "LEMON_VERSION is not defined. Please set it in the environment")
+ENDIF()
- IF(HG_REVISION_TAG STREQUAL "")
- SET(HG_REVISION_ID "hg-tip")
- ELSE()
- IF(HG_REVISION_TAG STREQUAL "null")
- SET(HG_REVISION_TAG "trunk")
- ELSEIF(HG_REVISION_TAG MATCHES "^r")
- STRING(SUBSTRING ${HG_REVISION_TAG} 1 -1 HG_REVISION_TAG)
- ENDIF()
- IF(HG_REVISION_DIST STREQUAL "0")
- SET(HG_REVISION ${HG_REVISION_TAG})
- ELSE()
- SET(HG_REVISION
- "${HG_REVISION_TAG}+${HG_REVISION_DIST}-${HG_REVISION_ID}")
- ENDIF()
- ENDIF()
- SET(LEMON_VERSION ${HG_REVISION} CACHE STRING "LEMON version string.")
-ENDIF()
+PROJECT(${PROJECT_NAME} VERSION ${LEMON_VERSION})
+
+find_package(Python3 REQUIRED COMPONENTS Interpreter)
+INCLUDE(FindWget)
SET(PROJECT_VERSION ${LEMON_VERSION})

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchurl,
cmake,
python3,
}:
stdenv.mkDerivation rec {
pname = "lemon-graph";
version = "1.3.1";
src = fetchurl {
url = "https://lemon.cs.elte.hu/pub/sources/lemon-${version}.tar.gz";
sha256 = "1j6kp9axhgna47cfnmk1m7vnqn01hwh7pf1fp76aid60yhjwgdvi";
};
buildInputs = [ python3 ];
nativeBuildInputs = [ cmake ];
# error: no viable conversion from ...
doCheck = !stdenv.hostPlatform.isDarwin;
patches = [
# error: ISO C++17 does not allow 'register' storage class specifier
./remove-register.patch
# fix cmake compatibility. vendored from https://github.com/The-OpenROAD-Project/lemon-graph/pull/2
./cmake_version.patch
];
meta = with lib; {
homepage = "https://lemon.cs.elte.hu/trac/lemon";
description = "Efficient library for combinatorial optimization tasks on graphs and networks";
license = licenses.boost;
maintainers = with maintainers; [ trepetti ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,15 @@
diff --git a/lemon/random.h b/lemon/random.h
index 8de74ede8a..f9861f3916 100644
--- a/lemon/random.h
+++ b/lemon/random.h
@@ -249,8 +249,8 @@ namespace lemon {
current = state + length;
- register Word *curr = state + length - 1;
- register long num;
+ Word *curr = state + length - 1;
+ long num;
num = length - shift;
while (num--) {

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
}:
let
srcs = {
lemon = fetchurl {
sha256 = "1c5pk2hz7j9hix5mpc38rwnm8dnlr2jqswf4lan6v78ccbyqzkjx";
url = "http://www.sqlite.org/src/raw/tool/lemon.c?name=680980c7935bfa1edec20c804c9e5ba4b1dd96f5";
name = "lemon.c";
};
lempar = fetchurl {
sha256 = "1ba13a6yh9j2cs1aw2fh4dxqvgf399gxq1gpp4sh8q0f2w6qiw3i";
url = "http://www.sqlite.org/src/raw/tool/lempar.c?name=01ca97f87610d1dac6d8cd96ab109ab1130e76dc";
name = "lempar.c";
};
};
in
stdenv.mkDerivation {
pname = "lemon";
version = "1.69";
dontUnpack = true;
buildPhase = ''
sh -xc "$CC ${srcs.lemon} -o lemon"
'';
installPhase = ''
install -Dvm755 lemon $out/bin/lemon
install -Dvm644 ${srcs.lempar} $out/bin/lempar.c
'';
meta = with lib; {
description = "LALR(1) parser generator";
mainProgram = "lemon";
longDescription = ''
The Lemon program is an LALR(1) parser generator that takes a
context-free grammar and converts it into a subroutine that will parse a
file using that grammar. Lemon is similar to the much more famous
programs "yacc" and "bison", but is not compatible with either.
'';
homepage = "http://www.hwaci.com/sw/lemon/";
license = licenses.publicDomain;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
fetchpatch,
}:
buildGoModule {
pname = "lemonade";
version = "unstable-2021-06-18";
src = fetchFromGitHub {
owner = "lemonade-command";
repo = "lemonade";
rev = "97ad2f7d63cbe6c696af36a754d399b4be4553bc";
sha256 = "sha256-77ymkpO/0DE4+m8fnpXGdnLLFxWMnKu2zsqCpQ3wEPM=";
};
patches = [
(fetchpatch {
url = "https://github.com/lemonade-command/lemonade/commit/2b292b0c9d8dc57f73c30a58b3f0f790a953b212.patch";
sha256 = "sha256-jUcOfsKu1IYa7arZuAvhuD0vw7JTmhzA/VLxOtAnbmI=";
})
];
vendorHash = "sha256-wjQfTKVNmehu4aU5425gS0YWKj53dosVSTLgdu9KjKc=";
subPackages = [ "." ];
meta = with lib; {
description = "Remote utility tool that to copy, paste and open browsers over TCP";
homepage = "https://github.com/lemonade-command/lemonade/";
license = licenses.mit;
maintainers = [ ];
mainProgram = "lemonade";
};
}

View File

@@ -0,0 +1,56 @@
{
fetchFromGitHub,
lib,
bash,
linux-pam,
rustPlatform,
systemdMinimal,
versionCheckHook,
nixosTests,
}:
rustPlatform.buildRustPackage rec {
pname = "lemurs";
version = "0.4.0";
src = fetchFromGitHub {
owner = "coastalwhite";
repo = "lemurs";
tag = "v${version}";
hash = "sha256-dtAmgzsUhn3AfafWbCaaog0S1teIy+8eYtaHBhvLfLI=";
};
cargoHash = "sha256-XoGtIHYCGXNuwnpDTU7NbZAs6rCO+69CAG89VCv9aAc=";
buildInputs = [
bash
linux-pam
systemdMinimal
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.tests = {
inherit (nixosTests)
lemurs
lemurs-wayland
lemurs-wayland-script
lemurs-xorg
lemurs-xorg-script
;
};
meta = {
description = "Customizable TUI display/login manager written in Rust";
homepage = "https://github.com/coastalwhite/lemurs";
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [
jeremiahs
nullcube
];
mainProgram = "lemurs";
};
}

View File

@@ -0,0 +1,98 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
makeWrapper,
boost,
portmidi,
sqlite,
freetype,
libpng,
pngpp,
zlib,
wxGTK32,
wxsqlite3,
fluidsynth,
fontconfig,
soundfont-fluid,
openlilylib-fonts,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lenmus";
version = "6.0.1";
src = fetchFromGitHub {
owner = "lenmus";
repo = "lenmus";
rev = "Release_${finalAttrs.version}";
hash = "sha256-qegOAc6vs2+6VViDHVjv0q+qjLZyTT7yPF3hFpTt5zE=";
};
env = {
NIX_CFLAGS_COMPILE = "-fpermissive";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace "/usr" "${placeholder "out"}"
sed -i 's/fixup_bundle.*")/")/g' CMakeLists.txt
'';
nativeBuildInputs = [
cmake
pkg-config
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
makeWrapper
];
buildInputs = [
boost
portmidi
sqlite
freetype
libpng
pngpp
zlib
wxGTK32
wxsqlite3
fluidsynth
fontconfig
];
preConfigure = ''
mkdir res/fonts
ln -s ${openlilylib-fonts.bravura}/share/lilypond/*/fonts/otf/Bravura.otf res/fonts/Bravura.otf
ln -s ${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2 res/sounds/FluidR3_GM.sf2
'';
cmakeFlags = [
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
"-DLENMUS_INSTALL_SOUNDFONT=ON"
"-DMAN_INSTALL_DIR=${placeholder "out"}/share/man"
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/{Applications,bin}
mv $out/lenmus.app $out/Applications
mv $out/Resources $out/Applications/lenmus.app/Contents
makeWrapper $out/{Applications/lenmus.app/Contents/MacOS,bin}/lenmus
'';
meta = {
description = "Program for learning music";
longDescription = ''
LenMus Phonascus is a free open source program (GPL v3) for learning music.
It allows you to focus on specific skills and exercises, on both theory and aural training.
The different activities can be customized to meet your needs
'';
homepage = "http://www.lenmus.org/";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ramkromberg ];
platforms = lib.platforms.unix;
mainProgram = "lenmus";
};
})

View File

@@ -0,0 +1,40 @@
{
lib,
buildGoModule,
fetchFromGitea,
}:
buildGoModule rec {
pname = "lenpaste";
version = "1.3";
src = fetchFromGitea {
domain = "git.lcomrade.su";
owner = "root";
repo = "lenpaste";
rev = "v${version}";
sha256 = "sha256-d+FjfEbInlxUllWIoVLwQRdRWjxBLTpNHYn+oYU3fBc=";
};
vendorHash = "sha256-PL0dysBn1+1BpZWFW/EUFJtqkabt+XN00YkAz8Yf2LQ=";
ldflags = [
"-w"
"-s"
"-X main.Version=${version}"
];
subPackages = [ "cmd" ];
postInstall = ''
mv $out/bin/cmd $out/bin/lenpaste
'';
meta = with lib; {
description = "Web service that allows you to share notes anonymously, an alternative to pastebin.com";
homepage = "https://git.lcomrade.su/root/lenpaste";
license = licenses.agpl3Plus;
maintainers = [ ];
mainProgram = "lenpaste";
};
}

View File

@@ -0,0 +1,32 @@
{
stdenv,
pname,
version,
src,
meta,
undmg,
}:
stdenv.mkDerivation {
inherit
pname
version
src
meta
;
sourceRoot = ".";
nativeBuildInputs = [ undmg ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
cp -R "Lens.app" "$out/Applications/Lens.app"
runHook postInstall
'';
dontFixup = true;
}

View File

@@ -0,0 +1,37 @@
{
pname,
version,
src,
meta,
appimageTools,
makeWrapper,
}:
let
appimageContents = appimageTools.extractType2 {
inherit pname version src;
};
in
appimageTools.wrapType2 {
inherit
pname
version
src
meta
;
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands = ''
wrapProgram $out/bin/${pname} \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/${pname}.png \
$out/share/icons/hicolor/512x512/apps/${pname}.png
substituteInPlace $out/share/applications/${pname}.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
extraPkgs = pkgs: [ pkgs.nss_latest ];
}

View File

@@ -0,0 +1,62 @@
{
stdenv,
callPackage,
fetchurl,
lib,
}:
let
pname = "lens-desktop";
version = "2024.11.261604";
sources = {
x86_64-linux = {
url = "https://api.k8slens.dev/binaries/Lens-${version}-latest.x86_64.AppImage";
hash = "sha256-AbuEU5gOckVU+eDIFnomc7ryLq68ihuk3c0XosoJp74=";
};
x86_64-darwin = {
url = "https://api.k8slens.dev/binaries/Lens-${version}-latest.dmg";
hash = "sha256-MQQRGTCe+LEHXJi6zjnpENbtlWNP+XVH9rWXRMk+26w=";
};
aarch64-darwin = {
url = "https://api.k8slens.dev/binaries/Lens-${version}-latest-arm64.dmg";
hash = "sha256-aakJCLnQBAnUdrrniTcahS+q3/kP09mlaPTV8FW5afI=";
};
};
src = fetchurl {
inherit (sources.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}")) url hash;
};
meta = with lib; {
description = "Kubernetes IDE";
homepage = "https://k8slens.dev/";
license = licenses.lens;
maintainers = with maintainers; [
dbirks
RossComputerGuy
starkca90
];
platforms = builtins.attrNames sources;
};
in
if stdenv.hostPlatform.isDarwin then
callPackage ./darwin.nix {
inherit
pname
version
src
meta
;
}
else
callPackage ./linux.nix {
inherit
pname
version
src
meta
;
}

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
glib,
zlib,
libpng,
cmake,
python3,
python3Packages,
}:
let
version = "0.3.4";
pname = "lensfun";
# Fetch a more recent version of the repo containing a more recent lens
# database
lensfunDatabase = fetchFromGitHub {
owner = "lensfun";
repo = "lensfun";
rev = "a1510e6f33ce9bc8b5056a823c6d5bc6b8cba033";
sha256 = "sha256-qdONyKk873Tq11M33JmznhJMAGd4dqp5KdXdVhfy/Ak=";
};
in
stdenv.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "lensfun";
repo = "lensfun";
rev = "v${version}";
sha256 = "sha256-FyYilIz9ssSHG6S02Z2bXy7fjSY51+SWW3v8bm7sLvY=";
};
# replace database with a more recent snapshot
# the master branch uses version 2 profiles, while 0.3.3 requires version 1 profiles,
# so we run the conversion tool the project provides,
# then untar the version 1 profiles into the source dir before we build
prePatch = ''
rm -R data/db
python3 ${lensfunDatabase}/tools/lensfun_convert_db_v2_to_v1.py $TMPDIR ${lensfunDatabase}/data/db
mkdir -p data/db
tar xvf $TMPDIR/db/version_1.tar -C data/db
date +%s > data/db/timestamp.txt
''
# Backport CMake 4 support
# This is already on master, but not yet in a stable release:
# https://github.com/lensfun/lensfun/issues/2520
# https://github.com/lensfun/lensfun/commit/011de2e85813ff496a85404b30891352555de077
+ ''
substituteInPlace CMakeLists.txt \
--replace-fail \
'CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12 FATAL_ERROR )' \
'CMAKE_MINIMUM_REQUIRED(VERSION 3.12 FATAL_ERROR)'
'';
nativeBuildInputs = [
cmake
pkg-config
python3
python3Packages.setuptools
python3Packages.lxml # For the db converison
];
buildInputs = [
glib
zlib
libpng
];
cmakeFlags = [ "-DINSTALL_HELPER_SCRIPTS=OFF" ];
meta = with lib; {
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
flokli
paperdigits
];
license = lib.licenses.lgpl3;
description = "Opensource database of photographic lenses and their characteristics";
homepage = "https://lensfun.github.io";
};
}

View File

@@ -0,0 +1,117 @@
{
lib,
stdenv,
python3,
fetchFromGitHub,
makeWrapper,
makeDesktopItem,
libsForQt5,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "leo-editor";
version = "6.8.6.1";
src = fetchFromGitHub {
owner = "leo-editor";
repo = "leo-editor";
tag = "v${finalAttrs.version}";
hash = "sha256-3ojiIjsGJpPgVSUi0QhIddqwsDxfRWxhxAQ5YmzwZiQ=";
};
dontBuild = true;
nativeBuildInputs = [
libsForQt5.wrapQtAppsHook
makeWrapper
python3
];
propagatedBuildInputs = with python3.pkgs; [
pyqt6
docutils
];
desktopItem = makeDesktopItem {
name = "leo-editor";
exec = "leo %U";
icon = "leoapp32";
type = "Application";
comment = finalAttrs.meta.description;
desktopName = "Leo";
genericName = "Text Editor";
categories = [
"Application"
"Development"
"IDE"
];
startupNotify = false;
mimeTypes = [
"text/plain"
"text/asp"
"text/x-c"
"text/x-script.elisp"
"text/x-fortran"
"text/html"
"application/inf"
"text/x-java-source"
"application/x-javascript"
"application/javascript"
"text/ecmascript"
"application/x-ksh"
"text/x-script.ksh"
"application/x-tex"
"text/x-script.rexx"
"text/x-pascal"
"text/x-script.perl"
"application/postscript"
"text/x-script.scheme"
"text/x-script.guile"
"text/sgml"
"text/x-sgml"
"application/x-bsh"
"application/x-sh"
"application/x-shar"
"text/x-script.sh"
"application/x-tcl"
"text/x-script.tcl"
"application/x-texinfo"
"application/xml"
"text/xml"
"text/x-asm"
];
};
installPhase = ''
runHook preInstall
mkdir -p "$out/share/icons/hicolor/32x32/apps"
cp leo/Icons/leoapp32.png "$out/share/icons/hicolor/32x32/apps"
mkdir -p "$out/share/applications"
cp $desktopItem/share/applications/* $out/share/applications
mkdir -p $out/share/leo-editor
mv * $out/share/leo-editor
makeWrapper ${python3.interpreter} $out/bin/leo \
--set PYTHONPATH "$PYTHONPATH:$out/share/leo-editor" \
--add-flags "-O $out/share/leo-editor/launchLeo.py"
wrapQtApp $out/bin/leo
runHook postInstall
'';
meta = {
homepage = "https://leo-editor.github.io/leo-editor/";
description = "Powerful folding editor";
longDescription = "Leo is a PIM, IDE and outliner that accelerates the work flow of programmers, authors and web designers.";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
leonardoce
kashw2
];
mainProgram = "leo";
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchurl,
openjdk,
runtimeShell,
}:
stdenv.mkDerivation rec {
pname = "leo3";
version = "1.2";
src = fetchurl {
url = "https://github.com/leoprover/Leo-III/releases/download/v${version}/leo3.jar";
sha256 = "1lgwxbr1rnk72rnvc8raq5i1q71ckhn998pwd9xk6zf27wlzijk7";
};
dontUnpack = true;
installPhase = ''
mkdir -p "$out"/{bin,lib/java/leo3}
cp "${src}" "$out/lib/java/leo3/leo3.jar"
echo "#!${runtimeShell}" > "$out/bin/leo3"
echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\"" >> "$out/bin/leo3"
chmod a+x "$out/bin/leo3"
'';
meta = with lib; {
description = "Automated theorem prover for classical higher-order logic with choice";
mainProgram = "leo3";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.bsd3;
maintainers = [ maintainers.raskin ];
platforms = platforms.linux;
homepage = "https://page.mi.fu-berlin.de/lex/leo3/";
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
povray,
libsForQt5,
replaceVars,
zlib,
testers,
nix-update-script,
libGL,
}:
/*
To use additional parts libraries
set the variable LEOCAD_LIB=/path/to/libs/ or use option -l /path/to/libs/
*/
let
parts = fetchurl {
url = "https://web.archive.org/web/20250709230715/https://library.ldraw.org/library/updates/complete.zip";
hash = "sha256-Uy7YYE7LdcmgEGbt6DlljS3QCQxjcviLApFuu1p9GZ8=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "leocad";
version = "25.09";
src = fetchFromGitHub {
owner = "leozide";
repo = "leocad";
tag = "v${finalAttrs.version}";
hash = "sha256-Utiy9JBKaPddb2yNv1Ta61KIB1vCsayZlxagn3or5UE=";
};
nativeBuildInputs = [
libsForQt5.qmake
libsForQt5.qttools
libsForQt5.wrapQtAppsHook
];
buildInputs = [
zlib
libGL
];
propagatedBuildInputs = [ povray ];
patches = [
(replaceVars ./povray.patch {
inherit povray;
})
];
qmakeFlags = [
"INSTALL_PREFIX=${placeholder "out"}"
"DISABLE_UPDATE_CHECK=1"
];
qtWrapperArgs = [
"--set-default LEOCAD_LIB ${parts}"
];
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "env QT_QPA_PLATFORM=minimal ${lib.getExe finalAttrs.finalPackage} --version";
};
updateScript = nix-update-script { };
};
passthru = {
description = "CAD program for creating virtual LEGO models";
mainProgram = "leocad";
homepage = "https://www.leocad.org/";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [
peterhoeg
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,72 @@
From 6e7dd2c763e2cc79db4cd7173921a4e72ce9b95e Mon Sep 17 00:00:00 2001
From: Elias Probst <mail@eliasprobst.eu>
Date: Tue, 5 Oct 2021 02:55:18 +0200
Subject: [PATCH] Don't use configurable POV-ray path.
Once the POV-ray path is configurable, it'll be written to the LeoCAD
profile, which will break upon the next update of POV-ray which will
have a different Nix store path.
Signed-off-by: Elias Probst <mail@eliasprobst.eu>
---
common/lc_application.cpp | 1 -
common/lc_profile.cpp | 2 +-
qt/lc_qpreferencesdialog.cpp | 3 ++-
qt/lc_renderdialog.cpp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/common/lc_application.cpp b/common/lc_application.cpp
index cbdec82e..21974510 100644
--- a/common/lc_application.cpp
+++ b/common/lc_application.cpp
@@ -1267,7 +1267,6 @@ void lcApplication::ShowPreferencesDialog()
lcSetProfileString(LC_PROFILE_DEFAULT_AUTHOR_NAME, Options.DefaultAuthor);
lcSetProfileString(LC_PROFILE_PARTS_LIBRARY, Options.LibraryPath);
lcSetProfileString(LC_PROFILE_MINIFIG_SETTINGS, Options.MinifigSettingsPath);
- lcSetProfileString(LC_PROFILE_POVRAY_PATH, Options.POVRayPath);
lcSetProfileString(LC_PROFILE_POVRAY_LGEO_PATH, Options.LGEOPath);
lcSetProfileString(LC_PROFILE_LANGUAGE, Options.Language);
lcSetProfileInt(LC_PROFILE_CHECK_UPDATES, Options.CheckForUpdates);
diff --git a/common/lc_profile.cpp b/common/lc_profile.cpp
index 1975b586..911c4fb0 100644
--- a/common/lc_profile.cpp
+++ b/common/lc_profile.cpp
@@ -132,7 +132,7 @@ static lcProfileEntry gProfileEntries[LC_NUM_PROFILE_KEYS] =
lcProfileEntry("HTML", "ImageWidth", 640), // LC_PROFILE_HTML_IMAGE_WIDTH
lcProfileEntry("HTML", "ImageHeight", 480), // LC_PROFILE_HTML_IMAGE_HEIGHT
- lcProfileEntry("POVRay", "Path", "/usr/bin/povray"), // LC_PROFILE_POVRAY_PATH
+ lcProfileEntry("POVRay", "Path", "@povray@/bin/povray"), // LC_PROFILE_POVRAY_PATH
lcProfileEntry("POVRay", "LGEOPath", ""), // LC_PROFILE_POVRAY_LGEO_PATH
lcProfileEntry("POVRay", "Width", 1280), // LC_PROFILE_POVRAY_WIDTH
lcProfileEntry("POVRay", "Height", 720), // LC_PROFILE_POVRAY_HEIGHT
diff --git a/qt/lc_qpreferencesdialog.cpp b/qt/lc_qpreferencesdialog.cpp
index 89f86aad..c239763f 100644
--- a/qt/lc_qpreferencesdialog.cpp
+++ b/qt/lc_qpreferencesdialog.cpp
@@ -55,7 +55,8 @@ lcQPreferencesDialog::lcQPreferencesDialog(QWidget* Parent, lcPreferencesDialogO
ui->partsLibrary->setText(mOptions->LibraryPath);
ui->ColorConfigEdit->setText(mOptions->ColorConfigPath);
ui->MinifigSettingsEdit->setText(mOptions->MinifigSettingsPath);
- ui->povrayExecutable->setText(mOptions->POVRayPath);
+ ui->povrayExecutable->hide();
+ ui->povrayExecutableBrowse->hide();
ui->lgeoPath->setText(mOptions->LGEOPath);
ui->authorName->setText(mOptions->DefaultAuthor);
ui->mouseSensitivity->setValue(mOptions->Preferences.mMouseSensitivity);
diff --git a/qt/lc_renderdialog.cpp b/qt/lc_renderdialog.cpp
index bd8a9102..96794738 100644
--- a/qt/lc_renderdialog.cpp
+++ b/qt/lc_renderdialog.cpp
@@ -184,7 +184,7 @@ void lcRenderDialog::on_RenderButton_clicked()
#endif
#ifdef Q_OS_LINUX
- POVRayPath = lcGetProfileString(LC_PROFILE_POVRAY_PATH);
+ POVRayPath = QDir::cleanPath(QLatin1String("@povray@/bin/povray"));
Arguments.append("+FN");
Arguments.append("-D");
#endif
--
2.33.0

View File

@@ -0,0 +1,79 @@
{
stdenv,
lib,
pkg-config,
makeWrapper,
texinfo,
fetchurl,
autoreconfHook,
guile,
flex,
gtk3,
glib,
gtksheet,
gettext,
gawk,
shared-mime-info,
groff,
libstroke,
}:
stdenv.mkDerivation rec {
pname = "lepton-eda";
version = "1.9.18-20220529";
src = fetchurl {
url = "https://github.com/lepton-eda/lepton-eda/releases/download/${version}/lepton-eda-${builtins.head (lib.splitString "-" version)}.tar.gz";
hash = "sha256-X9yNuosNR1Jf3gYWQZeOnKdxzJLld29Sn9XYsPGWYYI=";
};
nativeBuildInputs = [
pkg-config
makeWrapper
texinfo
autoreconfHook
];
propagatedBuildInputs = [
guile
flex
gtk3
glib
gtksheet
gettext
gawk
shared-mime-info
groff
libstroke
];
configureFlags = [
"--disable-update-xdg-database"
"--with-gtk3"
];
CFLAGS = [
"-DSCM_DEBUG_TYPING_STRICTNESS=2"
];
postInstall = ''
libs="${lib.makeLibraryPath propagatedBuildInputs}"
for program in $out/bin/*; do
wrapProgram "$program" \
--prefix LD_LIBRARY_PATH : "$libs" \
--prefix LTDL_LIBRARY_PATH : "$out/lib"
done
'';
meta = with lib; {
homepage = "https://github.com/lepton-eda";
description = "Lepton Electronic Design Automation";
longDescription = ''
Lepton EDA is a suite of free software tools for designing electronics.
It provides schematic capture, netlisting into over 30 netlist formats, and many other features.
'';
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ tesq0 ];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
git,
glibc,
}:
stdenv.mkDerivation {
version = "2019-08-20";
pname = "lepton-unstable";
src = fetchFromGitHub {
repo = "lepton";
owner = "dropbox";
rev = "3d1bc19da9f13a6e817938afd0f61a81110be4da";
sha256 = "0aqs6nvcbq8cbfv8699fa634bsz7csmk0169n069yvv17d1c07fd";
};
nativeBuildInputs = [
cmake
git
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ glibc.static ];
meta = with lib; {
homepage = "https://github.com/dropbox/lepton";
description = "Tool to losslessly compress JPEGs";
license = licenses.asl20;
platforms = [
"x86_64-linux"
"x86_64-darwin"
];
maintainers = with maintainers; [ artemist ];
knownVulnerabilities = [ "CVE-2022-4104" ];
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
autoreconfHook,
pkg-config,
which,
gnuplot,
giflib,
libjpeg,
libpng,
libtiff,
libwebp,
openjpeg,
zlib,
}:
stdenv.mkDerivation rec {
pname = "leptonica";
version = "1.85.0";
src = fetchFromGitHub {
owner = "DanBloomBerg";
repo = "leptonica";
rev = version;
hash = "sha256-meiSi0qL4i/KCMe5wsRK1/mbuRLHUb55DDOnxkrXZSs=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
giflib
libjpeg
libpng
libtiff
libwebp
openjpeg
zlib
];
enableParallelBuilding = true;
nativeCheckInputs = [
which
gnuplot
];
# Fails on pngio_reg for unknown reason
doCheck = false; # !stdenv.hostPlatform.isDarwin;
passthru.updateScript = nix-update-script { };
meta = {
maintainers = with lib.maintainers; [ patrickdag ];
description = "Image processing and analysis library";
homepage = "http://www.leptonica.org/";
license = lib.licenses.bsd2; # http://www.leptonica.org/about-the-license.html
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "leptosfmt";
version = "0.1.33";
src = fetchFromGitHub {
owner = "bram209";
repo = "leptosfmt";
tag = version;
hash = "sha256-+trLQFU8oP45xHQ3DsEESQzQX2WpvQcfpgGC9o5ITcY=";
fetchSubmodules = true;
};
cargoHash = "sha256-m9426zuxp9GfbYoljW49BVgetLTqqcqGHCb7I+Yw+bc=";
meta = with lib; {
description = "Formatter for the leptos view! macro";
mainProgram = "leptosfmt";
homepage = "https://github.com/bram209/leptosfmt";
changelog = "https://github.com/bram209/leptosfmt/blob/${src.rev}/CHANGELOG.md";
license = with licenses; [
asl20
mit
];
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
buildPackages,
fetchFromGitHub,
fetchpatch,
cmake,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lerc";
version = "4.0.0";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "esri";
repo = "lerc";
rev = "v${finalAttrs.version}";
hash = "sha256-IHY9QtNYsxPz/ksxRMZGHleT+/bawfTYNVRSTAuYQ7Y=";
};
# Required to get the freebsd-ports patch to apply.
# There seem to be inconsistent line endings in this project - just converting the patch doesn't work
prePatch = lib.optionalString stdenv.hostPlatform.isFreeBSD ''
${buildPackages.dos2unix}/bin/dos2unix src/LercLib/fpl_EsriHuffman.cpp src/LercLib/fpl_Lerc2Ext.cpp
'';
patches = [
# https://github.com/Esri/lerc/pull/227
(fetchpatch {
name = "use-cmake-install-full-dir.patch";
url = "https://github.com/Esri/lerc/commit/5462ca7f7dfb38c65e16f5abfd96873af177a0f8.patch";
hash = "sha256-qaNR3QwLe0AB6vu1nXOh9KhlPdWM3DmgCJj4d0VdOUk=";
})
]
++ lib.optionals stdenv.hostPlatform.isFreeBSD [
(fetchpatch {
url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/ee9e39ceb1af729ac33854b5f3de652cb5ce0eca/graphics/lerc/files/patch-_assert";
hash = "sha256-agvGqgIsKS8v43UZdTVxDRDGbZdj2+AzKoQONvQumB4=";
extraPrefix = "";
})
];
nativeBuildInputs = [
cmake
];
passthru.tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
meta = {
description = "C++ library for Limited Error Raster Compression";
homepage = "https://github.com/esri/lerc";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ dotlambda ];
pkgConfigModules = [ "Lerc" ];
};
})

View File

@@ -0,0 +1,40 @@
{
python3,
lib,
fetchFromGitea,
}:
python3.pkgs.buildPythonApplication {
pname = "lerpn";
version = "unstable-2023-06-09";
format = "pyproject";
src = fetchFromGitea {
domain = "gitea.alexisvl.rocks";
owner = "alexisvl";
repo = "lerpn";
rev = "b65e56cfbbb38f8200e7b0c18b3a585ae768c6e2";
hash = "sha256-4xqBHcOWHAvQtXS9CJWTGTdE4SGHxjghZY+/KPUgX70=";
};
build-system = with python3.pkgs; [ setuptools ];
checkPhase = ''
runHook preCheck
patchShebangs test
substituteInPlace test --replace-fail "#raise TestFailedException()" "sys.exit(1)"
./test
runHook postCheck
'';
pythonImportsCheck = [ "LerpnApp" ];
meta = with lib; {
homepage = "https://gitea.alexisvl.rocks/alexisvl/lerpn";
description = "Curses RPN calculator written in straight Python";
maintainers = [ ];
license = licenses.gpl3Plus;
mainProgram = "lerpn";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromSourcehut,
pkg-config,
scdoc,
libX11,
cairo,
pango,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lesbar";
version = "1.1.0";
src = fetchFromSourcehut {
owner = "~salmiak";
repo = "lesbar";
rev = "v${finalAttrs.version}";
hash = "sha256-uggIoO6rgotkLi6lSJTR4d3NtidXsAC1Kjay9YsT9ps=";
};
nativeBuildInputs = [
pkg-config
scdoc
];
buildInputs = [
libX11
cairo
pango
];
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Programming language agnostic view layer for creating desktop widgets and status bars";
homepage = "https://git.sr.ht/~salmiak/lesbar";
license = licenses.mit;
maintainers = with maintainers; [ jpentland ];
platforms = platforms.linux;
mainProgram = "lesbar";
};
})

View File

@@ -0,0 +1,63 @@
{
lib,
fetchurl,
fetchpatch,
ncurses,
pcre2,
stdenv,
versionCheckHook,
# Boolean options
withSecure ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "less";
version = "679";
# `less` is provided by the following sources:
# - meta.homepage
# - GitHub: https://github.com/gwsw/less/
# The releases recommended for general consumption are only those from
# homepage, and only those not marked as beta.
src = fetchurl {
url = "https://www.greenwoodsoftware.com/less/less-${finalAttrs.version}.tar.gz";
hash = "sha256-m2iCDDT6igr2sOAbdPApi83UCgSJxhZJtHBYkIoVPXg=";
};
buildInputs = [
ncurses
pcre2
];
outputs = [
"out"
"man"
];
configureFlags = [
"--sysconfdir=/etc" # Look for 'sysless' in /etc
(lib.withFeatureAs true "regex" "pcre2")
(lib.withFeature withSecure "secure")
];
strictDeps = true;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
meta = {
homepage = "https://www.greenwoodsoftware.com/less/";
description = "More advanced file pager than 'more'";
changelog = "https://www.greenwoodsoftware.com/less/news.${finalAttrs.version}.html";
license = lib.licenses.gpl3Plus;
mainProgram = "less";
maintainers = with lib.maintainers; [
# not active
dtzWill
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,77 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
callPackage,
testers,
runCommand,
writeText,
nix-update-script,
lessc,
}:
buildNpmPackage rec {
pname = "lessc";
version = "4.2.2";
src = fetchFromGitHub {
owner = "less";
repo = "less.js";
rev = "v${version}";
hash = "sha256-vO/1laFb1yC+OESXTx9KuGdwSNC9Iv49F3V7kfXnyJU=";
};
sourceRoot = "${src.name}/packages/less";
npmDepsHash = "sha256-3GlngmaxcUGXSv+ZwN2aovwEqcek6FJ1ZaL5KpjwNn4=";
postPatch = ''
sed -i ./package.json \
-e '/@less\/test-data/d' \
-e '/@less\/test-import-module/d'
'';
env.PUPPETEER_SKIP_DOWNLOAD = 1;
passthru = {
updateScript = nix-update-script { };
plugins = callPackage ./plugins { };
wrapper = callPackage ./wrapper { };
withPlugins = fn: lessc.wrapper.override { plugins = fn lessc.plugins; };
tests = {
version = testers.testVersion { package = lessc; };
simple = testers.testEqualContents {
assertion = "lessc compiles a basic less file";
expected = writeText "expected" ''
body h1 {
color: red;
}
'';
actual =
runCommand "actual"
{
nativeBuildInputs = [ lessc ];
base = writeText "base" ''
@color: red;
body {
h1 {
color: @color;
}
}
'';
}
''
lessc $base > $out
'';
};
};
};
meta = {
homepage = "https://github.com/less/less.js";
description = "Dynamic stylesheet language";
mainProgram = "lessc";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ lelgenio ];
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
testers,
runCommand,
writeText,
lessc,
}:
buildNpmPackage {
pname = "less-plugin-clean-css";
version = "1.6.0";
src = fetchFromGitHub {
owner = "less";
repo = "less-plugin-clean-css";
rev = "b2c3886b7af67ab45a5568e7758bbc2d5b82b112";
hash = "sha256-dYYcaCLTwAI2T7cWCfiK866Azrw4fnzTE/mkUA6HUFo=";
};
npmDepsHash = "sha256-uAYXFxOoUo8tLrYqNeUFMRuaYp2GArGMLaaes1QhLp4=";
dontNpmBuild = true;
passthru = {
updateScript = ./update.sh;
tests = {
simple = testers.testEqualContents {
assertion = "lessc compiles a basic less file";
expected = writeText "expected" ''
body h1{color:red}
'';
actual =
runCommand "actual"
{
nativeBuildInputs = [ (lessc.withPlugins (p: [ p.clean-css ])) ];
base = writeText "base" ''
@color: red;
body {
h1 {
color: @color;
}
}
'';
}
''
lessc $base --clean-css="--s1 --advanced" > $out
printf "\n" >> $out
'';
};
};
};
meta = {
homepage = "https://github.com/less/less-plugin-clean-css";
description = "Post-process and compress CSS using clean-css";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ lelgenio ];
};
}

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts nodejs prefetch-npm-deps sd
set -xeu -o pipefail
PACKAGE_DIR="$(realpath "$(dirname "$0")")"
cd "$PACKAGE_DIR/.."
while ! test -f flake.nix; do cd .. ; done
NIXPKGS_DIR="$PWD"
latest_commit="$(
curl -L -s ${GITHUB_TOKEN:+-u ":${GITHUB_TOKEN}"} https://api.github.com/repos/less/less-plugin-clean-css/branches/master \
| jq -r .commit.sha
)"
# This repository does not report it's version in tags
version="$(
curl https://raw.githubusercontent.com/less/less-plugin-clean-css/$latest_commit/package.json \
| jq -r .version
)"
update-source-version lessc.plugins.clean-css "$version" --rev=$latest_commit
src="$(nix-build --no-link "$NIXPKGS_DIR" -A lessc.plugins.clean-css.src)"
prev_npm_hash="$(
nix-instantiate "$NIXPKGS_DIR" \
--eval --json -A lessc.plugins.clean-css.npmDepsHash \
| jq -r .
)"
new_npm_hash="$(prefetch-npm-deps "$src/package-lock.json")"
sd --fixed-strings "$prev_npm_hash" "$new_npm_hash" "$PACKAGE_DIR/default.nix"

View File

@@ -0,0 +1,4 @@
{ callPackage }:
{
clean-css = callPackage ./clean-css { };
}

View File

@@ -0,0 +1,27 @@
{
lib,
stdenv,
makeWrapper,
lessc,
plugins ? [ ],
}:
stdenv.mkDerivation {
pname = "lessc-with-plugins";
nativeBuildInputs = [ makeWrapper ];
buildPhase = ''
mkdir -p $out/bin
makeWrapper "${lib.getExe lessc}" "$out/bin/lessc" \
--prefix NODE_PATH : "${lib.makeSearchPath "/lib/node_modules" plugins}"
'';
doUnpack = false;
inherit (lessc)
version
src
passthru
meta
;
}

View File

@@ -0,0 +1,35 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonPackage rec {
pname = "lesscpy";
version = "0.15.1";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-EEXRepj2iGRsp1jf8lTm6cA3RWSOBRoIGwOVw7d8gkw=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
ply
six
];
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
pythonImportsCheck = [ "lesscpy" ];
meta = with lib; {
description = "Python LESS Compiler";
mainProgram = "lesscpy";
homepage = "https://github.com/lesscpy/lesscpy";
license = licenses.mit;
maintainers = with maintainers; [ s1341 ];
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
python3,
fetchFromGitHub,
}:
let
inherit (python3.pkgs)
buildPythonApplication
setuptools
pytestCheckHook
mock
pexpect
;
repo = "lesspass";
in
buildPythonApplication rec {
pname = "lesspass-cli";
version = "9.1.9";
format = "pyproject";
src = fetchFromGitHub {
owner = repo;
repo = repo;
rev = version;
sha256 = "126zk248s9r72qk9b8j27yvb8gglw49kazwz0sd69b5kkxvhz2dh";
};
sourceRoot = "${src.name}/cli";
build-system = [
setuptools
];
nativeCheckInputs = [
pytestCheckHook
mock
pexpect
];
preCheck = ''
mv lesspass lesspass.hidden # ensure we're testing against *installed* package
# some tests are designed to run against code in the source directory - adapt to run against
# *installed* code
substituteInPlace tests/test_functional.py tests/test_interaction.py \
--replace-fail "lesspass/core.py" "-m lesspass.core"
'';
pythonImportsCheck = [ "lesspass" ];
meta = with lib; {
description = "Stateless password manager";
mainProgram = "lesspass";
homepage = "https://lesspass.com";
maintainers = with maintainers; [ jasoncarr ];
license = licenses.gpl3;
};
}

View File

@@ -0,0 +1,245 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
perl,
procps,
bash,
# shell referenced dependencies
resholve,
binutils-unwrapped,
file,
gnugrep,
coreutils,
gnused,
gnutar,
iconv,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "lesspipe";
version = "2.20";
src = fetchFromGitHub {
owner = "wofr06";
repo = "lesspipe";
rev = "v${version}";
hash = "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU=";
};
nativeBuildInputs = [
perl
makeWrapper
];
buildInputs = [
perl
bash
];
strictDeps = true;
postPatch = ''
patchShebangs --build configure
substituteInPlace configure --replace '/etc/bash_completion.d' '/share/bash-completion/completions'
'';
configureFlags = [
"--shell=${bash}/bin/bash"
"--prefix=/"
];
configurePlatforms = [ ];
dontBuild = true;
installFlags = [ "DESTDIR=$(out)" ];
postInstall = ''
# resholve doesn't see strings in an array definition
substituteInPlace $out/bin/lesspipe.sh --replace 'nodash strings' "nodash ${binutils-unwrapped}/bin/strings"
${resholve.phraseSolution "lesspipe.sh" {
scripts = [ "bin/lesspipe.sh" ];
interpreter = "${bash}/bin/bash";
inputs = [
coreutils
file
gnugrep
gnused
gnutar
iconv
procps
ncurses
];
keep = [
"$prog"
"$c1"
"$c2"
"$c3"
"$c4"
"$c5"
"$cmd"
"$colorizer"
"$HOME"
];
fake = {
# script guards usage behind has_cmd test function, it's safe to leave these external and optional
external = [
"cpio"
"isoinfo"
"cabextract"
"bsdtar"
"rpm2cpio"
"bsdtar"
"unzip"
"ar"
"unrar"
"rar"
"7zr"
"7za"
"isoinfo"
"gzip"
"bzip2"
"lzip"
"lzma"
"xz"
"brotli"
"compress"
"zstd"
"lz4"
"archive_color"
"bat"
"batcat"
"pygmentize"
"source-highlight"
"vimcolor"
"code2color"
"w3m"
"lynx"
"elinks"
"html2text"
"xmq"
"dtc"
"pdftotext"
"pdftohtml"
"pdfinfo"
"ps2ascii"
"procyon"
"ccze"
"mdcat"
"pandoc"
"docx2txt"
"libreoffice"
"pptx2md"
"mdcat"
"xlscat"
"odt2txt"
"wvText"
"catdoc"
"broken_catppt"
"sxw2txt"
"groff"
"mandoc"
"unrtf"
"dvi2tty"
"pod2text"
"perldoc"
"h5dump"
"ncdump"
"matdump"
"djvutxt"
"openssl"
"gpg"
"plistutil"
"plutil"
"id3v2"
"csvlook"
"csvtable"
"jq"
"zlib-flate"
"lessfilter"
"snap"
"locale" # call site is guarded by || so it's safe to leave dynamic
];
builtin = [ "setopt" ];
};
execer = [
"cannot:${iconv}/bin/iconv"
"cannot:${file}/bin/file"
];
}}
${resholve.phraseSolution "lesscomplete" {
scripts = [ "bin/lesscomplete" ];
interpreter = "${bash}/bin/bash";
inputs = [
coreutils
file
gnugrep
gnused
gnutar
];
keep = [
"$prog"
"$c1"
"$c2"
"$c3"
"$c4"
"$c5"
"$cmd"
];
fake = {
# script guards usage behind has_cmd test function, it's safe to leave these external and optional
external = [
"cpio"
"isoinfo"
"cabextract"
"bsdtar"
"rpm2cpio"
"bsdtar"
"unzip"
"ar"
"unrar"
"rar"
"7zr"
"7za"
"isoinfo"
"gzip"
"bzip2"
"lzip"
"lzma"
"xz"
"brotli"
"compress"
"zstd"
"lz4"
];
builtin = [ "setopt" ];
};
execer = [
"cannot:${file}/bin/file"
];
}}
'';
meta = with lib; {
description = "Preprocessor for less";
longDescription = ''
Usually lesspipe.sh is called as an input filter to less. With the help
of that filter less will display the uncompressed contents of compressed
(gzip, bzip2, compress, rar, 7-zip, lzip, xz or lzma) files. For files
containing archives and directories, a table of contents will be
displayed (e.g tar, ar, rar, jar, rpm and deb formats). Other supported
formats include nroff, pdf, ps, dvi, shared library, MS word, OASIS
(e.g. Openoffice), NetCDF, html, mp3, jpg, png, iso images, MacOSX bom,
plist and archive formats, perl storable data and gpg encrypted files.
This does require additional helper programs being installed.
'';
mainProgram = "lesspipe.sh";
homepage = "https://github.com/wofr06/lesspipe";
platforms = platforms.all;
license = licenses.gpl2Only;
maintainers = [ maintainers.martijnvermaat ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "lethe";
version = "0.8.2";
src = fetchFromGitHub {
owner = "kostassoid";
repo = "lethe";
rev = "v${version}";
sha256 = "sha256-y2D/80pnpYpTl+q9COTQkvtj9lzBlOWuMcnn5WFnX8E=";
};
cargoHash = "sha256-Ky39RpLoYks4xDiheSsrUj3l/ZrGcY+y5IuDZ28pH/c=";
meta = with lib; {
description = "Tool to wipe drives in a secure way";
homepage = "https://github.com/kostassoid/lethe";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
mainProgram = "lethe";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
let
version = "1.2.1";
in
python3Packages.buildPythonApplication {
pname = "letsdns";
inherit version;
pyproject = true;
src = fetchFromGitHub {
owner = "LetsDNS";
repo = "letsdns";
tag = version;
hash = "sha256-TwGVm7sEOPvUqtvaAuIU/X5W3H4VAC8dskNunt8UO0I=";
};
build-system = [
python3Packages.setuptools
];
nativeCheckInputs = [
python3Packages.pytestCheckHook
versionCheckHook
];
dependencies = with python3Packages; [
cryptography
dnspython
requests
];
disabledTestPaths = [
# These tests require upstream certificates
"tests/test_action.py"
];
env = {
UNITTEST_CONF = "tests/citest.conf";
};
passthru.updateScript = nix-update-script { };
meta = {
description = "Manage DANE TLSA records in DNS servers";
homepage = "https://www.letsdns.de/";
downloadPage = "https://github.com/LetsDNS/letsdns";
changelog = "https://github.com/LetsDNS/letsdns/releases/tag/${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ rseichter ];
mainProgram = "letsdns";
};
}

View File

@@ -0,0 +1,90 @@
{
lib,
fetchFromGitLab,
fetchpatch,
wrapGAppsHook4,
appstream,
blueprint-compiler,
desktop-file-utils,
gettext,
gobject-introspection,
jp2a,
libadwaita,
meson,
ninja,
pkg-config,
python3Packages,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "letterpress";
version = "2.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "letterpress";
rev = version;
hash = "sha256-9U8iH3V4WMljdtWLmb0RlexLeAN5StJ0c9RlEB2E7Xs=";
};
patches = [
# Fix application segmentation fault on file chooser dialog opening
# https://gitlab.gnome.org/World/Letterpress/-/merge_requests/16
(fetchpatch {
url = "https://gitlab.gnome.org/World/Letterpress/-/commit/15059eacca14204d1092a6e32ef30c6ce4df6d36.patch";
hash = "sha256-pjg/O9advtkZ0l73GQtL/GYcTWeOs5l3VGOdnsZCWI0=";
})
];
runtimeDeps = [
jp2a
];
buildInputs = [
libadwaita
];
nativeBuildInputs = [
appstream
blueprint-compiler
desktop-file-utils
gettext
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook4
];
dependencies = with python3Packages; [
pillow
pygobject3
];
pyproject = false; # built by meson
dontWrapGApps = true; # prevent double wrapping
preFixup = ''
makeWrapperArgs+=(''${gappsWrapperArgs[@]} --prefix PATH : ${lib.makeBinPath runtimeDeps})
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Create beautiful ASCII art";
longDescription = ''
Letterpress converts your images into a picture made up of ASCII characters.
You can save the output to a file, copy it, and even change its resolution!
High-res output can still be viewed comfortably by lowering the zoom factor.
'';
homepage = "https://apps.gnome.org/Letterpress/";
license = licenses.gpl3Plus;
maintainers = [ maintainers.dawidd6 ];
teams = [ teams.gnome-circle ];
platforms = platforms.linux;
mainProgram = "letterpress";
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "levant";
version = "0.4.0";
src = fetchFromGitHub {
owner = "hashicorp";
repo = "levant";
rev = "v${version}";
sha256 = "sha256-XxdLN/z+mtiaAy6heRbj4kyIOeKbS9yb1xIZnIyfI3s=";
};
vendorHash = "sha256-UJuAT02rYid2IESuABTDEAJiIBOfcyvH7ASOZfgTrZs=";
# The tests try to connect to a Nomad cluster.
doCheck = false;
meta = with lib; {
description = "Open source templating and deployment tool for HashiCorp Nomad jobs";
mainProgram = "levant";
homepage = "https://github.com/hashicorp/levant";
license = licenses.mpl20;
maintainers = with maintainers; [ max-niederman ];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
addDriverRunpath,
cmake,
fetchFromGitHub,
intel-compute-runtime,
openvino,
stdenv,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "level-zero";
version = "1.24.2";
src = fetchFromGitHub {
owner = "oneapi-src";
repo = "level-zero";
tag = "v${version}";
hash = "sha256-5QkXWuMFNsYNsW8lgo9FQIZ5NuLiRZCFKGWedpddi8Y=";
};
nativeBuildInputs = [
cmake
addDriverRunpath
];
postFixup = ''
addDriverRunpath $out/lib/libze_loader.so
'';
passthru = {
tests = {
inherit intel-compute-runtime openvino;
};
updateScript = nix-update-script { };
};
meta = {
description = "oneAPI Level Zero Specification Headers and Loader";
homepage = "https://github.com/oneapi-src/level-zero";
changelog = "https://github.com/oneapi-src/level-zero/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.ziguana ];
};
}

View File

@@ -0,0 +1,73 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
fixDarwinDylibNames,
snappy,
cmake,
static ? stdenv.hostPlatform.isStatic,
}:
stdenv.mkDerivation rec {
pname = "leveldb";
version = "1.23";
src = fetchFromGitHub {
owner = "google";
repo = "leveldb";
rev = version;
sha256 = "sha256-RL+dfSFZZzWvUobSqiPbuC4nDiGzjIIukbVJZRacHbI=";
};
patches = [
# Re-enable RTTI. Needed for e.g. Ceph to compile properly.
# See https://github.com/NixOS/nixpkgs/issues/147801,
# https://github.com/google/leveldb/issues/731,
# https://lists.ceph.io/hyperkitty/list/dev@ceph.io/thread/K4OSAA4AJS2V7FQI6GNCKCK3IRQDBQRS/.
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/leveldb/raw/e8178670c664e952fdd00f1fc6e3eb28b2c5b6a8/f/0006-revert-no-rtti.patch";
sha256 = "sha256-d2YAV8O+1VKu3WwgNsWw6Cxg5sUUR+xOlJtA7pTcigQ=";
})
];
outputs = [
"out"
"dev"
];
buildInputs = [ snappy ];
nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames ++ [ cmake ];
doCheck = true;
buildFlags = [ "all" ];
# NOTE: disabling tests due to gtest issue
cmakeFlags = [
"-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
"-DLEVELDB_BUILD_TESTS=OFF"
"-DLEVELDB_BUILD_BENCHMARKS=OFF"
];
postInstall = ''
substituteInPlace "$out"/lib/cmake/leveldb/leveldbTargets.cmake \
--replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include"' 'INTERFACE_INCLUDE_DIRECTORIES "'$dev'"'
mkdir -p $dev/lib/pkgconfig
cat <<EOF > $dev/lib/pkgconfig/leveldb.pc
Name: leveldb
Description: Fast and lightweight key/value database library by Google.
Version: ${version}
Libs: -L$out/lib -lleveldb
Cflags: -I$dev/include
EOF
'';
meta = with lib; {
homepage = "https://github.com/google/leveldb";
description = "Fast and lightweight key/value database library by Google";
license = licenses.bsd3;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "levmar";
version = "2.6";
src = fetchurl {
url = "https://www.ics.forth.gr/~lourakis/levmar/levmar-${finalAttrs.version}.tgz";
hash = "sha256-O/TvHqRHXe1TFejY/Jkqcl8ueUCnTKOw+QKdnm6Uutc=";
};
postPatch = ''
substituteInPlace levmar.h --replace-fail "define HAVE_LAPACK" "undef HAVE_LAPACK"
sed -i 's/LAPACKLIBS=.*/LAPACKLIBS=/' Makefile
substituteInPlace Makefile --replace-fail "gcc" "${stdenv.cc.targetPrefix}cc"
''
+ lib.optionalString stdenv.cc.isClang ''
substituteInPlace compiler.h \
--replace-fail "#define LM_FINITE finite // ICC, GCC" \
"#define LM_FINITE isfinite // ICC, GCC"
'';
installPhase = ''
mkdir -p $out/include $out/lib
cp lm.h $out/include
cp liblevmar.a $out/lib
'';
meta = {
description = "ANSI C implementations of Levenberg-Marquardt, usable also from C++";
homepage = "https://www.ics.forth.gr/~lourakis/levmar/";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lexbor";
version = "2.5.0";
src = fetchFromGitHub {
owner = "lexbor";
repo = "lexbor";
tag = "v${finalAttrs.version}";
hash = "sha256-QmD8p6dySLEeHjCmDSTplXwsy2Z7yHKYlXmPCKwaBfU=";
};
nativeBuildInputs = [
cmake
];
meta = {
description = "Open source HTML Renderer library";
homepage = "https://github.com/lexbor/lexbor";
changelog = "https://github.com/lexbor/lexbor/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = [ ];
mainProgram = "lexbor";
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "lexend";
version = "0.pre+date=2022-09-22";
src = fetchFromGitHub {
owner = "googlefonts";
repo = "lexend";
rev = "cd26b9c2538d758138c20c3d2f10362ed613854b";
sha256 = "ZKogntyJ/44GBZmFwbtw5Ujw5Gnvv0tVB59ciKqR4c8=";
};
installPhase = ''
runHook preInstall
cd fonts
for f in *; do
install -D -t $out/share/fonts/truetype/lexend/$f $f/ttf/*
install -D -t $out/share/fonts/variable/lexend/$f $f/variable/*
done
runHook postInstall
'';
meta = with lib; {
homepage = "https://www.lexend.com";
description = "Variable font family designed to aid in reading proficiency";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ fufexan ];
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
beamPackages,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
}:
beamPackages.mixRelease rec {
pname = "lexical";
version = "0.7.3";
src = fetchFromGitHub {
owner = "lexical-lsp";
repo = "lexical";
tag = "v${version}";
hash = "sha256-p8XSJBX1igwC+ssEJGD8wb/ZYaEgLGozlY8N6spo3cA=";
};
mixFodDeps = beamPackages.fetchMixDeps {
inherit pname version src;
hash = "sha256-g6BZGJ33oBDXmjbb/kBfPhart4En/iDlt4yQJYeuBzw=";
};
installPhase = ''
runHook preInstall
mix do compile --no-deps-check, package --path "$out"
runHook postInstall
'';
postInstall = ''
substituteInPlace "$out/bin/start_lexical.sh" \
--replace-fail 'elixir_command=' 'elixir_command="${beamPackages.elixir}/bin/"'
mv "$out/bin" "$out/libexec"
makeWrapper "$out/libexec/start_lexical.sh" "$out/bin/lexical" \
--set RELEASE_COOKIE lexical
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
__darwinAllowLocalNetworking = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Next-generation elixir language server";
homepage = "https://github.com/lexical-lsp/lexical";
changelog = "https://github.com/lexical-lsp/lexical/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ GaetanLepage ];
mainProgram = "lexical";
platforms = beamPackages.erlang.meta.platforms;
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "lexido";
version = "1.4.3";
src = fetchFromGitHub {
owner = "micr0-dev";
repo = "lexido";
rev = "v${version}";
hash = "sha256-zJP14dbC/Oz15CA3PRD0RfEYOrfulL2fWYHwFxhLKO4=";
};
vendorHash = "sha256-H5qljaA77AQrUjFsVSWha5pzt4qS9XKagG4GoNRVn88=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Terminal assistant, powered by Generative AI";
homepage = "https://github.com/micr0-dev/lexido";
license = licenses.agpl3Only;
maintainers = with maintainers; [ daru-san ];
mainProgram = "lexido";
};
}

View File

@@ -0,0 +1,90 @@
{
lib,
stdenv,
cups,
fetchurl,
patchPpdFilesHook,
autoPatchelfHook,
dpkg,
perl,
avahi,
}:
stdenv.mkDerivation {
pname = "lexmark-aex";
version = "1.0";
dontPatchELF = true;
dontStrip = true;
src = fetchurl {
url = "https://downloads.lexmark.com/downloads/drivers/Lexmark-AEX-PPD-Files-1.0-01242019.amd64.deb";
hash = "sha256-igrJEeFLArGbncOwk/WttnWfPjOokD0/IzpJ4VSOtHk=";
};
strictDeps = true;
nativeBuildInputs = [
autoPatchelfHook
patchPpdFilesHook
dpkg
];
buildInputs = [
# Needed for autoPatchelfHook.
avahi
cups
# Needed for patchShebangs.
perl
];
# Needed for autoPatchelfHook.
runtimeDependencies = [ (lib.getLib cups) ];
ppdFileCommands = [
"CommandFileFilterG2"
"rerouteprintoption"
];
installPhase =
let
libdir =
if stdenv.system == "x86_64-linux" then
"lib64"
else if stdenv.system == "i686_linux" then
"lib"
else
throw "other platforms than i686_linux and x86_64-linux are not yet supported";
in
''
runHook preInstall
prefix=usr/local/Lexmark/ppd/Lexmark-AEX-PPD-Files/GlobalPPD_1.4
# Install raster image filter.
install -Dm755 "$prefix/rerouteprintoption" "$out/lib/cups/filter/rerouteprintoption"
patchShebangs "$out/lib/cups/filter/rerouteprintoption"
# Install additional binary filters.
for i in CommandFileFilterG2 LexHBPFilter; do
install -Dm755 "$prefix/${libdir}/$i" "$out/lib/cups/filter/$i"
done
# Install PPD.
install -Dm 0644 -t "$out/share/cups/model/Lexmark" "$prefix"/*.ppd
runHook postInstall
'';
meta = with lib; {
description = "CUPS drivers for Lexmark B2200 and MB2200 Series printers";
homepage = "https://support.lexmark.com/en_xm/drivers-downloads.html";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = [ maintainers.tobim ];
platforms = [
"x86_64-linux"
"i686-linux"
];
};
}