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,143 @@
{
lib,
stdenv,
fetchFromGitHub,
# nativeBuildInputs
ninja,
makeWrapper,
# buildInputs
fmt,
rsync,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lua-language-server";
version = "3.15.0";
src = fetchFromGitHub {
owner = "luals";
repo = "lua-language-server";
tag = finalAttrs.version;
hash = "sha256-frsq5OA3giLOJ/KPcAqVhme+0CtJuZrS3F4zHN1PnFM=";
fetchSubmodules = true;
};
nativeBuildInputs = [
ninja
makeWrapper
];
buildInputs = [
fmt
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
rsync
];
env.NIX_LDFLAGS = "-lfmt";
postPatch = ''
# filewatch tests are failing on darwin
# this feature is not used in lua-language-server
substituteInPlace 3rd/bee.lua/test/test.lua \
--replace-fail 'require "test_filewatch"' ""
# use nixpkgs fmt library
for d in 3rd/bee.lua 3rd/luamake/bee.lua
do
rm -r $d/3rd/fmt/*
touch $d/3rd/fmt/format.cc
substituteInPlace $d/bee/nonstd/format.h $d/bee/nonstd/print.h \
--replace-fail "include <3rd/fmt/fmt" "include <fmt"
done
# flaky tests on linux
# https://github.com/LuaLS/lua-language-server/issues/2926
substituteInPlace test/tclient/init.lua \
--replace-fail "require 'tclient.tests.load-relative-library'" ""
pushd 3rd/luamake
''
+ lib.optionalString stdenv.hostPlatform.isDarwin (
# This package uses the program clang for C and C++ files. The language
# is selected via the command line argument -std, but this do not work
# in combination with the nixpkgs clang wrapper. Therefor we have to
# find all c++ compiler statements and replace $cc (which expands to
# clang) with clang++.
''
sed -i compile/ninja/macos.ninja \
-e '/c++/s,$cc,clang++,' \
-e '/test.lua/s,= .*,= true,' \
-e '/ldl/s,$cc,clang++,'
sed -i scripts/compiler/gcc.lua \
-e '/cxx_/s,$cc,clang++,'
''
# Avoid relying on ditto (impure)
+ ''
substituteInPlace compile/ninja/macos.ninja \
--replace-fail "ditto" "rsync -a"
substituteInPlace scripts/writer.lua \
--replace-fail "ditto" "rsync -a"
''
);
ninjaFlags = [
"-fcompile/ninja/${if stdenv.hostPlatform.isDarwin then "macos" else "linux"}.ninja"
];
postBuild = ''
popd
./3rd/luamake/luamake rebuild
'';
installPhase = ''
runHook preInstall
install -Dt "$out"/share/lua-language-server/bin bin/lua-language-server
install -m644 -t "$out"/share/lua-language-server/bin bin/*.*
install -m644 -t "$out"/share/lua-language-server {debugger,main}.lua
cp -r locale meta script "$out"/share/lua-language-server
# necessary for --version to work:
install -m644 -t "$out"/share/lua-language-server changelog.md
makeWrapper "$out"/share/lua-language-server/bin/lua-language-server \
$out/bin/lua-language-server \
--add-flags "-E $out/share/lua-language-server/main.lua \
--logpath=\''${XDG_CACHE_HOME:-\$HOME/.cache}/lua-language-server/log \
--metapath=\''${XDG_CACHE_HOME:-\$HOME/.cache}/lua-language-server/meta"
runHook postInstall
'';
# some tests require local networking
__darwinAllowLocalNetworking = true;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Language server that offers Lua language support";
homepage = "https://github.com/luals/lua-language-server";
changelog = "https://github.com/LuaLS/lua-language-server/blob/${finalAttrs.version}/changelog.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
figsoda
gepbird
sei40kr
];
mainProgram = "lua-language-server";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "luabridge";
version = "2.8";
src = fetchFromGitHub {
owner = "vinniefalco";
repo = "LuaBridge";
rev = version;
sha256 = "sha256-gXrBNzE41SH98Xz480+uHQlxHjMHzs23AImxil5LZ0g=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/include
cp -r Source/LuaBridge $out/include
runHook postInstall
'';
meta = {
description = "Lightweight, dependency-free library for binding Lua to C++";
homepage = "https://github.com/vinniefalco/LuaBridge";
changelog = "https://github.com/vinniefalco/LuaBridge/blob/${version}/CHANGES.md";
platforms = lib.platforms.unix;
license = lib.licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,67 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a21b94..0ac7911 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -67,10 +67,10 @@ endif()
include_directories(
${PROJECT_SOURCE_DIR}/generated/
- ${PROJECT_SOURCE_DIR}/third_party/
- ${PROJECT_SOURCE_DIR}/third_party/Catch2/single_include
- ${PROJECT_SOURCE_DIR}/third_party/yaml-cpp/include
- ${PROJECT_SOURCE_DIR}/third_party/antlr4/runtime/Cpp/runtime/src
+ @libargs@/include
+ @catch2@/include
+ @yamlCpp@/include
+ @antlr4RuntimeCpp@/include/antlr4-runtime
${PROJECT_SOURCE_DIR}/src/
)
@@ -92,9 +92,6 @@ file(GLOB_RECURSE yaml-cpp-src
${PROJECT_SOURCE_DIR}/third_party/yaml-cpp/src/*.cpp
)
-add_library (antlr4-cpp-runtime ${antlr4-cpp-src})
-add_library (yaml-cpp ${yaml-cpp-src})
-
add_executable(lua-format ${src_dir} src/main.cpp)
if(WIN32)
@@ -104,7 +101,7 @@ endif()
set_target_properties(lua-format PROPERTIES LINKER_LANGUAGE CXX)
-target_link_libraries(lua-format yaml-cpp antlr4-cpp-runtime ${extra-libs})
+target_link_libraries(lua-format yaml-cpp antlr4-runtime ${extra-libs})
install(TARGETS lua-format
RUNTIME DESTINATION bin
@@ -135,7 +132,7 @@ if(BUILD_TESTS)
endif()
target_compile_definitions(lua-format-test PUBLIC PROJECT_PATH="${PROJECT_SOURCE_DIR}")
- target_link_libraries(lua-format-test yaml-cpp antlr4-cpp-runtime ${extra-libs})
+ target_link_libraries(lua-format-test yaml-cpp antlr4-runtime ${extra-libs})
add_test(NAME args COMMAND lua-format-test [args])
add_test(NAME config COMMAND lua-format-test [config])
diff --git a/src/main.cpp b/src/main.cpp
index 38962a2..332aad6 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1,4 +1,4 @@
-#include <args/args.hxx>
+#include <args.hxx>
#include <cstdlib>
#include <fstream>
#include <iostream>
diff --git a/test/test_args.cpp b/test/test_args.cpp
index 69a5746..b988d00 100644
--- a/test/test_args.cpp
+++ b/test/test_args.cpp
@@ -1,4 +1,4 @@
-#include <args/args.hxx>
+#include <args.hxx>
#include <catch2/catch.hpp>
#include <iostream>
#include <tuple>

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
replaceVars,
antlr4_9,
libargs,
catch2,
cmake,
yaml-cpp,
}:
let
antlr4 = antlr4_9;
in
stdenv.mkDerivation rec {
pname = "luaformatter";
version = "1.3.6";
src = fetchFromGitHub {
owner = "Koihik";
repo = "LuaFormatter";
rev = version;
sha256 = "14l1f9hrp6m7z3cm5yl0njba6gfixzdirxjl8nihp9val0685vm0";
};
patches = [
(replaceVars ./fix-lib-paths.patch {
antlr4RuntimeCpp = antlr4.runtime.cpp.dev;
yamlCpp = yaml-cpp;
inherit libargs catch2;
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [
antlr4.runtime.cpp
yaml-cpp
];
meta = with lib; {
description = "Code formatter for Lua";
homepage = "https://github.com/Koihik/LuaFormatter";
license = licenses.asl20;
platforms = platforms.all;
maintainers = with maintainers; [ figsoda ];
mainProgram = "lua-format";
};
}

View File

@@ -0,0 +1,102 @@
{
lib,
fetchFromGitHub,
glib-networking,
gst_all_1,
gtk3,
help2man,
luajit,
luajitPackages,
pkg-config,
sqlite,
stdenv,
webkitgtk_4_1,
wrapGAppsHook3,
}:
let
inherit (luajitPackages) luafilesystem;
in
stdenv.mkDerivation (finalAttrs: {
pname = "luakit";
version = "2.4.0";
src = fetchFromGitHub {
owner = "luakit";
repo = "luakit";
rev = finalAttrs.version;
hash = "sha256-6OPcGwWQyP+xWVKGjwEfE8Xnf1gcwwbO+FbvA1x0c8M=";
};
nativeBuildInputs = [
luajit
pkg-config
help2man
wrapGAppsHook3
];
buildInputs = [
glib-networking # TLS support
gtk3
luafilesystem
sqlite
webkitgtk_4_1
]
++ (with gst_all_1; [
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
]);
strictDeps = true;
# build-utils/docgen/gen.lua:2: module 'lib.lousy.util' not found
# TODO: why is not this the default? The test runner adds
# ';./lib/?.lua;./lib/?/init.lua' to package.path, but the build-utils
# scripts don't add an equivalent
preBuild = ''
export LUA_PATH="$LUA_PATH;./?.lua;./?/init.lua"
'';
makeFlags = [
"DEVELOPMENT_PATHS=0"
"USE_LUAJIT=1"
"LUA_BIN_NAME=luajit"
"INSTALLDIR=${placeholder "out"}"
"PREFIX=${placeholder "out"}"
"USE_GTK3=1"
"XDGPREFIX=${placeholder "out"}/etc/xdg"
];
preFixup =
let
luaKitPath = "$out/share/luakit/lib/?/init.lua;$out/share/luakit/lib/?.lua";
in
''
gappsWrapperArgs+=(
--prefix XDG_CONFIG_DIRS : "$out/etc/xdg"
--prefix LUA_PATH ';' "${luaKitPath};$LUA_PATH"
--prefix LUA_CPATH ';' "$LUA_CPATH"
)
'';
meta = {
homepage = "https://luakit.github.io/";
description = "Fast, small, webkit-based browser framework extensible in Lua";
longDescription = ''
Luakit is a highly configurable browser framework based on the WebKit web
content engine and the GTK+ toolkit. It is very fast, extensible with Lua,
and licensed under the GNU GPLv3 license. It is primarily targeted at
power users, developers and anyone who wants to have fine-grained control
over their web browsers behaviour and interface.
'';
license = lib.licenses.gpl3Only;
mainProgram = "luakit";
maintainers = with lib.maintainers; [
griffi-gh
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/src/filesys.cpp b/src/filesys.cpp
index 8881eb2ca..e02d87a9f 100644
--- a/src/filesys.cpp
+++ b/src/filesys.cpp
@@ -384,7 +384,7 @@ bool RecursiveDelete(const std::string &path)
if (child_pid == 0) {
// Child
std::array<const char*, 4> argv = {
- "rm",
+ "@RM_COMMAND@",
"-rf",
path.c_str(),
nullptr

View File

@@ -0,0 +1,159 @@
{
lib,
stdenv,
fetchFromGitHub,
substitute,
cmake,
coreutils,
libpng,
bzip2,
curl,
libogg,
jsoncpp,
libjpeg,
libGLU,
openal,
libvorbis,
sqlite,
luajit,
freetype,
gettext,
doxygen,
ncurses,
graphviz,
xorg,
gmp,
libspatialindex,
leveldb,
libpq,
hiredis,
libiconv,
ninja,
prometheus-cpp,
buildClient ? true,
buildServer ? true,
SDL2,
useSDL2 ? true,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luanti";
version = "5.14.0";
src = fetchFromGitHub {
owner = "luanti-org";
repo = "luanti";
tag = finalAttrs.version;
hash = "sha256-y4Bnlq3nE2u4PN0VPyBP31YORrG6LPPoSb7T5i9JnVM=";
};
patches = [
(substitute {
src = ./0000-mark-rm-for-substitution.patch;
substitutions = [
"--subst-var-by"
"RM_COMMAND"
"${coreutils}/bin/rm"
];
})
];
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
sed -i '/pagezero_size/d;/fixup_bundle/d' src/CMakeLists.txt
'';
cmakeFlags = [
(lib.cmakeBool "BUILD_CLIENT" buildClient)
(lib.cmakeBool "BUILD_SERVER" buildServer)
(lib.cmakeBool "BUILD_UNITTESTS" (finalAttrs.finalPackage.doCheck or false))
(lib.cmakeBool "ENABLE_PROMETHEUS" buildServer)
(lib.cmakeBool "USE_SDL2" useSDL2)
# Ensure we use system libraries
(lib.cmakeBool "ENABLE_SYSTEM_GMP" true)
(lib.cmakeBool "ENABLE_SYSTEM_JSONCPP" true)
# Updates are handled by nix anyway
(lib.cmakeBool "ENABLE_UPDATE_CHECKER" false)
# ...but make it clear that this is a nix package
(lib.cmakeFeature "VERSION_EXTRA" "NixOS")
# Remove when https://github.com/NixOS/nixpkgs/issues/144170 is fixed
(lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin")
(lib.cmakeFeature "CMAKE_INSTALL_DATADIR" "share")
(lib.cmakeFeature "CMAKE_INSTALL_DOCDIR" "share/doc/luanti")
(lib.cmakeFeature "CMAKE_INSTALL_MANDIR" "share/man")
(lib.cmakeFeature "CMAKE_INSTALL_LOCALEDIR" "share/locale")
];
nativeBuildInputs = [
cmake
doxygen
graphviz
ninja
];
buildInputs = [
jsoncpp
gettext
freetype
sqlite
curl
bzip2
ncurses
gmp
libspatialindex
]
++ lib.optional (lib.meta.availableOn stdenv.hostPlatform luajit) luajit
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
]
++ lib.optionals buildClient [
libpng
libjpeg
libGLU
openal
libogg
libvorbis
]
++ lib.optionals (buildClient && useSDL2) [
SDL2
]
++ lib.optionals (buildClient && !stdenv.hostPlatform.isDarwin) [
xorg.libX11
xorg.libXi
]
++ lib.optionals buildServer [
leveldb
libpq
hiredis
prometheus-cpp
];
postInstall =
lib.optionalString stdenv.hostPlatform.isLinux ''
patchShebangs $out
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv $out/luanti.app $out/Applications
'';
doCheck = true;
passthru.updateScript = nix-update-script { };
meta = with lib; {
homepage = "https://www.luanti.org/";
description = "Open source voxel game engine (formerly Minetest)";
license = licenses.lgpl21Plus;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [
fpletz
fgaz
jk
];
mainProgram = if buildClient then "luanti" else "luantiserver";
};
})

View File

@@ -0,0 +1,66 @@
{
nix,
makeWrapper,
python3Packages,
lib,
nix-prefetch-scripts,
luarocks-nix,
pluginupdate,
lua5_1,
lua5_2,
lua5_3,
lua5_4,
luajit,
}:
let
path = lib.makeBinPath [
nix
nix-prefetch-scripts
luarocks-nix
lua5_1
lua5_2
lua5_3
lua5_4
luajit
];
attrs = fromTOML (builtins.readFile ./pyproject.toml);
pname = attrs.project.name;
inherit (attrs.project) version;
in
python3Packages.buildPythonApplication {
inherit pname version;
pyproject = true;
src = lib.cleanSource ./.;
build-system = [
python3Packages.setuptools
];
dependencies = [
python3Packages.gitpython
];
postFixup = ''
echo "pluginupdate folder ${pluginupdate}"
wrapProgram $out/bin/luarocks-packages-updater \
--prefix PYTHONPATH : "${pluginupdate}" \
--prefix PATH : "${path}"
'';
shellHook = ''
export PYTHONPATH="maintainers/scripts/pluginupdate-py:$PYTHONPATH"
export PATH="${path}:$PATH"
'';
meta = {
inherit (attrs.project) description;
license = lib.licenses.gpl3Only;
homepage = attrs.project.urls.Homepage;
mainProgram = "luarocks-packages-updater";
maintainers = with lib.maintainers; [ teto ];
};
}

View File

@@ -0,0 +1,19 @@
[build-system]
build-backend = "setuptools.build_meta"
requires = [ "setuptools" ]
[project]
name = "luarocks-packages-updater"
version = "0.0.1"
description = """
Module to update luarocks-packages"""
[project.urls]
Homepage = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/by-name/lu/luarocks-packages-updater"
[project.scripts]
luarocks-packages-updater = "updater:main"
[tool.ruff]
line-length = 120
indent-width = 4

View File

@@ -0,0 +1,265 @@
#!/usr/bin/env python
# format:
# $ nix run nixpkgs#python3Packages.ruff -- update.py
# type-check:
# $ nix run nixpkgs#python3Packages.mypy -- update.py
# linted:
# $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py
import csv
import inspect
import logging
import os
import shutil
import subprocess
import tempfile
import textwrap
from dataclasses import dataclass
from multiprocessing.dummy import Pool
from pathlib import Path
import pluginupdate
from pluginupdate import FetchConfig, update_plugins
class ColoredFormatter(logging.Formatter):
# Define color codes
COLORS = {
"DEBUG": "\033[94m", # Blue
"INFO": "\033[92m", # Green
"WARNING": "\033[93m", # Yellow
"ERROR": "\033[91m", # Red
"CRITICAL": "\033[95m", # Magenta
}
RESET = "\033[0m"
def format(self, record):
log_color = self.COLORS.get(record.levelname, self.RESET)
record.msg = f"{log_color}{record.msg}{self.RESET}"
return super().format(record)
handler = logging.StreamHandler()
handler.setFormatter(ColoredFormatter("%(levelname)s: %(message)s"))
log = logging.getLogger()
log.handlers = [handler]
ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore
PKG_LIST = "maintainers/scripts/luarocks-packages.csv"
TMP_FILE = "$(mktemp)"
GENERATED_NIXFILE = "pkgs/development/lua-modules/generated-packages.nix"
HEADER = """/*
{GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT!
Regenerate it with: nix run nixpkgs#luarocks-packages-updater
You can customize the generated packages in pkgs/development/lua-modules/overrides.nix
*/
""".format(GENERATED_NIXFILE=GENERATED_NIXFILE)
FOOTER = """
}
# GENERATED - do not edit this file
"""
@dataclass
class LuaPlugin:
name: str
"""Name of the plugin, as seen on luarocks.org"""
rockspec: str
"""Full URI towards the rockspec"""
ref: str | None
"""git reference (branch name/tag)"""
version: str | None
"""Set it to pin a package """
server: str | None
"""luarocks.org registers packages under different manifests.
Its value can be 'http://luarocks.org/dev'
"""
luaversion: str | None
"""lua version if a package is available only for a specific lua version"""
maintainers: str | None
"""Optional string listing maintainers separated by spaces"""
@property
def normalized_name(self) -> str:
return self.name.replace(".", "-")
# rename Editor to LangUpdate/ EcosystemUpdater
class LuaEditor(pluginupdate.Editor):
def create_parser(self):
parser = super().create_parser()
parser.set_defaults(proc=1)
return parser
def get_current_plugins(self):
return []
def load_plugin_spec(self, input_file) -> list[LuaPlugin]:
luaPackages = []
csvfilename = input_file
log.info("Loading package descriptions from %s", csvfilename)
with open(csvfilename, newline="") as csvfile:
reader = csv.DictReader(
csvfile,
)
for row in reader:
# name,server,version,luaversion,maintainers
plugin = LuaPlugin(**row)
luaPackages.append(plugin)
return luaPackages
def update(self, args):
update_plugins(self, args)
def generate_nix(self, results: list[tuple[LuaPlugin, str]], outfilename: str):
with tempfile.NamedTemporaryFile("w+") as f:
f.write(HEADER)
header2 = textwrap.dedent(
"""
{
stdenv,
lib,
fetchurl,
fetchgit,
callPackage,
...
}:
final: prev: {
"""
)
f.write(header2)
for plugin, nix_expr in results:
f.write(f"{plugin.normalized_name} = {nix_expr}")
f.write(FOOTER)
f.flush()
# if everything went fine, move the generated file to its destination
# using copy since move doesn't work across disks
shutil.copy(f.name, outfilename)
print(f"updated {outfilename}")
# Format the generated file with nix fmt
subprocess.run(["nix", "fmt", outfilename], check=True)
@property
def attr_path(self):
return "luaPackages"
def get_update(
self,
input_file: str,
output_file: str,
config: FetchConfig,
# TODO: implement support for adding/updating individual plugins
to_update: list[str] | None,
):
if to_update is not None:
raise NotImplementedError("For now, lua updater doesn't support updating individual packages.")
_prefetch = generate_pkg_nix
def update() -> dict:
plugin_specs = self.load_plugin_spec(input_file)
sorted_plugin_specs = sorted(plugin_specs, key=lambda v: v.name.lower())
try:
pool = Pool(processes=config.proc)
results = pool.map(_prefetch, sorted_plugin_specs)
finally:
pass
successful_results = [(plug, nix_expr) for plug, nix_expr, error in results if nix_expr is not None]
errors = [(plug, error) for plug, nix_expr, error in results if error is not None]
self.generate_nix(successful_results, output_file)
if errors:
log.error("The following plugins failed to update:")
for plug, error in errors:
log.error("%s: %s", plug.name, error)
redirects = {}
return redirects
return update
def rewrite_input(self, input_file: str, *args, **kwargs):
# vim plugin reads the file before update but that shouldn't be our case
# not implemented yet
# fieldnames = ['name', 'server', 'version', 'luaversion', 'maintainers']
# input_file = "toto.csv"
# with open(input_file, newline='') as csvfile:
# writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
# writer.writeheader()
# for row in reader:
# # name,server,version,luaversion,maintainers
# plugin = LuaPlugin(**row)
# luaPackages.append(plugin)
pass
def generate_pkg_nix(plug: LuaPlugin):
"""
Generate nix expression for a luarocks package
Our cache key associates "p.name-p.version" to its rockspec
"""
log.debug("Generating nix expression for %s", plug.name)
try:
cmd = ["luarocks", "nix"]
if plug.maintainers:
cmd.append(f"--maintainers={plug.maintainers}")
if plug.rockspec != "":
if plug.ref or plug.version:
msg = "'version' and 'ref' will be ignored as the rockspec is hardcoded for package %s" % plug.name
log.warning(msg)
log.debug("Updating from rockspec %s", plug.rockspec)
cmd.append(plug.rockspec)
# update the plugin from luarocks
else:
cmd.append(plug.name)
if plug.version and plug.version != "src":
cmd.append(plug.version)
if plug.server != "src" and plug.server:
cmd.append(f"--only-server={plug.server}")
if plug.luaversion:
cmd.append(f"--lua-version={plug.luaversion}")
luaver = plug.luaversion.replace(".", "")
if luaver := os.getenv(f"LUA_{luaver}"):
cmd.append(f"--lua-dir={luaver}")
log.debug("running %s", " ".join(cmd))
output = subprocess.check_output(cmd, text=True)
## FIXME: luarocks nix command output isn't formatted properly
output = "callPackage(\n" + output.strip() + ") {};\n\n"
return (plug, output, None)
except subprocess.CalledProcessError as e:
log.error("Failed to generate nix expression for %s: %s", plug.name, e)
return (plug, None, str(e))
def main():
editor = LuaEditor(
"lua",
ROOT,
"",
default_in=PKG_LIST,
default_out=GENERATED_NIXFILE,
)
editor.run()
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
fetchFromGitHub,
# Native Build Inputs
cmake,
pkg-config,
makeWrapper,
# Dependencies
yajl,
alsa-lib,
libpulseaudio,
glib,
libnl,
udev,
libXau,
libXdmcp,
pcre2,
pcre,
util-linux,
libselinux,
libsepol,
lua5,
docutils,
libxcb,
libX11,
xcbutil,
xcbutilwm,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luastatus";
version = "0.6.0";
src = fetchFromGitHub {
owner = "shdown";
repo = "luastatus";
rev = "v${finalAttrs.version}";
hash = "sha256-whO5pjUPaCwEb2GDCIPnTk39MejSQOoRRQ5kdYEQ0Pc=";
};
nativeBuildInputs = [
cmake
pkg-config
makeWrapper
];
buildInputs = [
libxcb
libX11
xcbutil
xcbutilwm
libXdmcp
libXau
libpulseaudio
libnl
libselinux
libsepol
yajl
alsa-lib
glib
udev
pcre2
pcre
util-linux
lua5
docutils
];
postInstall = ''
wrapProgram $out/bin/luastatus-stdout-wrapper \
--prefix LUASTATUS : $out/bin/luastatus
wrapProgram $out/bin/luastatus-i3-wrapper \
--prefix LUASTATUS : $out/bin/luastatus
wrapProgram $out/bin/luastatus-lemonbar-launcher \
--prefix LUASTATUS : $out/bin/luastatus
'';
meta = with lib; {
description = "Universal status bar content generator";
homepage = "https://github.com/shdown/luastatus";
changelog = "https://github.com/shdown/luastatus/releases/tag/${finalAttrs.version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ kashw2 ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luau-lsp";
version = "1.54.0";
src = fetchFromGitHub {
owner = "JohnnyMorganz";
repo = "luau-lsp";
tag = finalAttrs.version;
hash = "sha256-18r/NScWfSwAvFT46zdJsNYXoEW8FF34XyZajAaGb28=";
fetchSubmodules = true;
};
NIX_CFLAGS_COMPILE = "-Wno-error";
cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
(lib.cmakeFeature "CMAKE_OSX_ARCHITECTURES" stdenv.hostPlatform.darwinArch)
];
nativeBuildInputs = [ cmake ];
buildPhase = ''
runHook preBuild
cmake --build . --target Luau.LanguageServer.CLI --config Release
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -D luau-lsp $out/bin/luau-lsp
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Language Server Implementation for Luau";
homepage = "https://github.com/JohnnyMorganz/luau-lsp";
downloadPage = "https://github.com/JohnnyMorganz/luau-lsp/releases/tag/${finalAttrs.version}";
changelog = "https://github.com/JohnnyMorganz/luau-lsp/blob/${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
anninzy
HeitorAugustoLN
];
mainProgram = "luau-lsp";
platforms = lib.platforms.all;
badPlatforms = [
# Could not find a package configuration file provided by "Protobuf"
# It is unclear why this is only happening on x86_64-darwin
"x86_64-darwin"
];
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
llvmPackages,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luau";
version = "0.694";
src = fetchFromGitHub {
owner = "luau-lang";
repo = "luau";
tag = finalAttrs.version;
hash = "sha256-PA7wcrbGRfrMYgT9vWcpPEgZot+HNkQrptPuEArVM3Q=";
};
nativeBuildInputs = [ cmake ];
buildInputs = lib.optionals stdenv.cc.isClang [ llvmPackages.libunwind ];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin luau
install -Dm755 -t $out/bin luau-analyze
install -Dm755 -t $out/bin luau-compile
runHook postInstall
'';
doCheck = true;
checkPhase = ''
runHook preCheck
./Luau.UnitTest
./Luau.Conformance
runHook postCheck
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Fast, small, safe, gradually typed embeddable scripting language derived from Lua";
homepage = "https://luau-lang.org/";
changelog = "https://github.com/luau-lang/luau/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
prince213
HeitorAugustoLN
];
mainProgram = "luau";
};
})

77
pkgs/by-name/lu/lubelogger/deps.json generated Normal file
View File

@@ -0,0 +1,77 @@
[
{
"pname": "BouncyCastle.Cryptography",
"version": "2.4.0",
"hash": "sha256-DoDZNWtYM+0OLIclOEZ+tjcGXymGlXvdvq2ZMPmiAJA="
},
{
"pname": "CsvHelper",
"version": "30.0.1",
"hash": "sha256-lCfo0ZQUJFXABIi18fy/alC1YGwkwM+lGy2zL47RAWw="
},
{
"pname": "LiteDB",
"version": "5.0.17",
"hash": "sha256-ltZUyxeqaTX/2ppdUMTTzVO0npZuRw43boZZUNAD0Ig="
},
{
"pname": "MailKit",
"version": "4.8.0",
"hash": "sha256-ONvrVOwjxyNrIQM8FMzT5mLzlU56Kc8oOwkzegNAiXM="
},
{
"pname": "Microsoft.Extensions.DependencyInjection.Abstractions",
"version": "8.0.0",
"hash": "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8="
},
{
"pname": "Microsoft.Extensions.Logging.Abstractions",
"version": "8.0.0",
"hash": "sha256-Jmddjeg8U5S+iBTwRlVAVLeIHxc4yrrNgqVMOB7EjM4="
},
{
"pname": "Microsoft.IdentityModel.Abstractions",
"version": "7.3.1",
"hash": "sha256-lbZKfnulWcM4Mxbz6Hkrp/lM41hsOfCnsHLEb+u2czc="
},
{
"pname": "Microsoft.IdentityModel.JsonWebTokens",
"version": "7.3.1",
"hash": "sha256-C7uySnKBB0e5Wf6z8YNtjbtBbhalJMdqx0EWVcYy7Q4="
},
{
"pname": "Microsoft.IdentityModel.Logging",
"version": "7.3.1",
"hash": "sha256-6OHGsItAXicCSlW0ghCy5szNi6HwhlCmbykbN1O5yAw="
},
{
"pname": "Microsoft.IdentityModel.Tokens",
"version": "7.3.1",
"hash": "sha256-qfTNU0g9QA8kV42VTAez1pSTmfFRJBbeTbGn/nfGFUU="
},
{
"pname": "MimeKit",
"version": "4.8.0",
"hash": "sha256-4EB54ktBXuq5QRID9i8E7FzU7YZTE4wwH+2yr7ivi/Q="
},
{
"pname": "Npgsql",
"version": "8.0.5",
"hash": "sha256-vGIznPqwfhg8wY9bt5XlinyNWMr5kJ2jJZHDXc73uhI="
},
{
"pname": "System.Formats.Asn1",
"version": "8.0.1",
"hash": "sha256-may/Wg+esmm1N14kQTG4ESMBi+GQKPp0ZrrBo/o6OXM="
},
{
"pname": "System.IdentityModel.Tokens.Jwt",
"version": "7.3.1",
"hash": "sha256-Si60aDtJSjvXvY5ZkVQKF3JzxAkmkAKOw5D/q8CwuyQ="
},
{
"pname": "System.Security.Cryptography.Pkcs",
"version": "8.0.0",
"hash": "sha256-yqfIIeZchsII2KdcxJyApZNzxM/VKknjs25gDWlweBI="
}
]

View File

@@ -0,0 +1,45 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
}:
buildDotnetModule rec {
pname = "lubelogger";
version = "1.4.5";
src = fetchFromGitHub {
owner = "hargata";
repo = "lubelog";
rev = "v${version}";
hash = "sha256-ZlB9lyfC4xrLWAb+Jbo6eI/LuYjvgMEauQeLxGCqy88=";
};
projectFile = "CarCareTracker.sln";
nugetDeps = ./deps.json; # File generated with `nix-build -A lubelogger.passthru.fetch-deps`.
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
makeWrapperArgs = [
"--set DOTNET_WEBROOT ${placeholder "out"}/lib/lubelogger/wwwroot"
];
executables = [ "CarCareTracker" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`.
meta = {
description = "Vehicle service records and maintainence tracker";
longDescription = ''
A self-hosted, open-source, unconventionally-named vehicle maintenance records and fuel mileage tracker.
LubeLogger by Hargata Softworks is licensed under the MIT License for individual and personal use. Commercial users and/or corporate entities are required to maintain an active subscription in order to continue using LubeLogger.
'';
homepage = "https://lubelogger.com";
changelog = "https://github.com/hargata/lubelog/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lyndeno ];
mainProgram = "CarCareTracker";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
boost,
gtest,
zlib,
}:
stdenv.mkDerivation rec {
pname = "lucene++";
version = "3.0.9";
src = fetchFromGitHub {
owner = "luceneplusplus";
repo = "LucenePlusPlus";
rev = "rel_${version}";
hash = "sha256-VxEV45OXHRldFdIt2OC6O7ey5u98VQzlzeOb9ZiKfd8=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
gtest
zlib
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
(lib.cmakeBool "ENABLE_TEST" doCheck)
];
patches = [
(fetchpatch {
name = "fix-build-with-boost-1_85_0.patch";
url = "https://github.com/luceneplusplus/LucenePlusPlus/commit/76dc90f2b65d81be018c499714ff11e121ba5585.patch";
hash = "sha256-SNAngHwy7yxvly8d6u1LcPsM6NYVx3FrFiSHLmkqY6Q=";
})
(fetchpatch {
name = "fix-install-path-for-liblucene_pc.patch";
url = "https://github.com/luceneplusplus/LucenePlusPlus/commit/f40f59c6e169b4e16b7a6439ecb26a629c6540d1.patch";
hash = "sha256-YtZMqh/cnkGikatcgRjOWXj570M5ZOnCqgW8/K0/nVo=";
})
(fetchpatch {
name = "migrate-to-boost_asio_io_context.patch";
url = "https://github.com/luceneplusplus/LucenePlusPlus/commit/e6a376836e5c891577eae6369263152106b9bc02.patch";
hash = "sha256-0mdVvrS0nTxSJXRzVdx2Zb/vm9aVxGfARG/QliRx7tA=";
})
];
# Don't use the built in gtest - but the nixpkgs one requires C++14.
postPatch = ''
substituteInPlace src/test/CMakeLists.txt \
--replace-fail "add_subdirectory(gtest)" ""
substituteInPlace CMakeLists.txt \
--replace-fail "set(CMAKE_CXX_STANDARD 11)" "set(CMAKE_CXX_STANDARD 14)"
'';
# FIXME: Stuck for several hours after passing 1472 tests
doCheck = false;
checkPhase = ''
runHook preCheck
LD_LIBRARY_PATH=$PWD/src/contrib:$PWD/src/core \
src/test/lucene++-tester
runHook postCheck
'';
meta = {
description = "C++ port of the popular Java Lucene search engine";
homepage = "https://github.com/luceneplusplus/LucenePlusPlus";
license = with lib.licenses; [
asl20
lgpl3Plus
];
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ wineee ];
};
}

View File

@@ -0,0 +1,32 @@
{
fetchFromGitHub,
lib,
nix-update-script,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "lucida-downloader";
version = "0.6.0";
src = fetchFromGitHub {
owner = "jelni";
repo = "lucida-downloader";
tag = "v${version}";
hash = "sha256-/T3iB2DbcIbdwROzyB4UqXqrF7soRPCW7EUjZ8orhf4=";
};
passthru.updateScript = nix-update-script { };
cargoHash = "sha256-GHEGz7m/IDtPaynDPQQ9Zq3wDKe4BV+H+rrF6G4QA6s=";
meta = {
description = "Multithreaded client for downloading music for free with lucida";
homepage = "https://github.com/jelni/lucida-downloader";
license = lib.licenses.gpl3Plus;
mainProgram = "lucida";
maintainers = with lib.maintainers; [
surfaceflinger
];
};
}

View File

@@ -0,0 +1,26 @@
{ lib, fetchurl }:
fetchurl rec {
pname = "lucide";
version = "0.544.0";
url = "https://unpkg.com/lucide-static@${version}/font/Lucide.ttf";
hash = "sha256-Cf4vv+f3ZUtXPED+PCHxvZZDMF5nWYa4iGFSDQtkquQ=";
downloadToTemp = true;
recursiveHash = true;
postFetch = ''
mkdir -p $out/share/fonts/truetype
cp -a $downloadedFile $out/share/fonts/truetype/Lucide.ttf
'';
meta = {
homepage = "https://lucide.dev/";
description = "Open-source icon library that provides 1000+ icons";
downloadPage = url;
platforms = lib.platforms.all;
license = lib.licenses.isc;
maintainers = [ lib.maintainers.janTatesa ];
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
fetchFromGitHub,
crystal,
makeWrapper,
openssl,
}:
crystal.buildCrystalPackage rec {
pname = "lucky-cli";
version = "1.1.0";
src = fetchFromGitHub {
owner = "luckyframework";
repo = "lucky_cli";
rev = "v${version}";
hash = "sha256-mDUx9cQoYpU9kSAls36kzNVYZ8a4aqHEMIWfzS41NBk=";
};
# the integration tests will try to clone a remote repos
postPatch = ''
rm -rf spec/integration
'';
format = "crystal";
lockFile = ./shard.lock;
shardsFile = ./shards.nix;
crystalBinaries.lucky.src = "src/lucky.cr";
buildInputs = [ openssl ];
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram $out/bin/lucky \
--prefix PATH : ${lib.makeBinPath [ crystal ]}
'';
meta = with lib; {
description = "Crystal library for creating and running tasks. Also generates Lucky projects";
homepage = "https://luckyframework.org/";
license = licenses.mit;
maintainers = with maintainers; [ peterhoeg ];
mainProgram = "lucky";
platforms = platforms.unix;
broken = lib.versionOlder crystal.version "1.6.0";
};
}

View File

@@ -0,0 +1,18 @@
version: 2.0
shards:
ameba:
git: https://github.com/crystal-ameba/ameba.git
version: 1.5.0
lucky_task:
git: https://github.com/luckyframework/lucky_task.git
version: 0.3.0
lucky_template:
git: https://github.com/luckyframework/lucky_template.git
version: 0.2.0
nox:
git: https://github.com/crystal-loot/nox.git
version: 0.2.2

View File

@@ -0,0 +1,22 @@
{
ameba = {
url = "https://github.com/crystal-ameba/ameba.git";
rev = "v1.5.0";
sha256 = "1idivsbpmi40aqvs82fsv37nrgikirprxrj3ls9chsb876fq9p2d";
};
lucky_task = {
url = "https://github.com/luckyframework/lucky_task.git";
rev = "v0.3.0";
sha256 = "0lp2wv01wdcfr3h43n3dqgaymvypy0i6kbffb4mg4l30lijgpfb6";
};
lucky_template = {
url = "https://github.com/luckyframework/lucky_template.git";
rev = "v0.2.0";
sha256 = "1xix82d0xanq4xkcv83hm56nj5f2rsbrqhk70j5zr37d3kydfypl";
};
nox = {
url = "https://github.com/crystal-loot/nox.git";
rev = "v0.2.2";
sha256 = "1dfq0aknrxwp9wc0glri4w5j8pfbc6b1xrsxkahci109p6dhcna5";
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
rustPlatform,
fetchFromGitHub,
withOpenCL ? true,
stdenv,
ocl-icd,
}:
rustPlatform.buildRustPackage rec {
pname = "lucky-commit";
version = "2.2.5";
src = fetchFromGitHub {
owner = "not-an-aardvark";
repo = "lucky-commit";
rev = "v${version}";
sha256 = "sha256-pghc2lTI81/z1bPJ6P2bFPyZkM8pko0V7lqv9rUUxWM=";
};
cargoHash = "sha256-zuWPkaYltxOOLaR6NTVkf1WbKzUQByml45jNL+e5UJ0=";
buildInputs = lib.optional (withOpenCL && (!stdenv.hostPlatform.isDarwin)) ocl-icd;
buildNoDefaultFeatures = !withOpenCL;
# disable tests that require gpu
checkNoDefaultFeatures = true;
meta = with lib; {
description = "Change the start of your git commit hashes to whatever you want";
homepage = "https://github.com/not-an-aardvark/lucky-commit";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "lucky_commit";
};
}

View File

@@ -0,0 +1,73 @@
{
lib,
fetchurl,
libtool,
openssh,
pkg-config,
qt5,
rsync,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luckybackup";
version = "0.5.0";
src = fetchurl {
url = "mirror://sourceforge/project/luckybackup/${finalAttrs.version}/source/luckybackup-${finalAttrs.version}.tar.gz";
hash = "sha256-6AGvJIPL3WK8mvji3tJSxRrbrYFILikQQvWOIcPUkls=";
};
outputs = [
"out"
"doc"
"man"
];
nativeBuildInputs = [
libtool
pkg-config
qt5.qmake
qt5.wrapQtAppsHook
];
buildInputs = [
rsync
openssh
qt5.qtwayland
];
strictDeps = true;
prePatch = ''
for File in \
luckybackup.pro \
menu/luckybackup-pkexec \
menu/luckybackup-su.desktop \
menu/luckybackup.desktop \
menu/net.luckybackup.su.policy \
src/functions.cpp \
src/global.cpp \
src/scheduleDialog.cpp; do
substituteInPlace $File --replace "/usr" "$out"
done
'';
meta = {
homepage = "https://luckybackup.sourceforge.net/";
description = "Powerful, fast and reliable backup & sync tool";
longDescription = ''
luckyBackup is an application for data back-up and synchronization
powered by the rsync tool.
It is simple to use, fast (transfers over only changes made and not
all data), safe (keeps your data safe by checking all declared directories
before proceeding in any data manipulation), reliable and fully
customizable.
'';
license = lib.licenses.gpl3Plus;
mainProgram = "luckybackup";
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation rec {
pname = "luculent";
version = "2.0.0";
src = fetchurl {
url = "http://www.eastfarthing.com/${pname}/${pname}.tar.xz";
hash = "sha256-6NxLnTBnvHmTUTFa2wW0AuKPEbCqzaWQyiFVnF0sBqU=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
cp *.ttf $out/share/fonts/truetype
runHook postInstall
'';
meta = with lib; {
description = "Luculent font";
homepage = "http://www.eastfarthing.com/luculent/";
license = licenses.ofl;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "ludtwig";
version = "0.10.0";
src = fetchFromGitHub {
owner = "MalteJanz";
repo = "ludtwig";
rev = "v${version}";
hash = "sha256-3E1W6AlGQ9AhMzLvTV5KBjlKiWXyi7rFwHOdU3CIp60=";
};
checkType = "debug";
cargoHash = "sha256-00JHtrDffFl3h3IOH+h491qGOSfXIJH9NBmaqqUtQ6k=";
meta = with lib; {
description = "Linter / Formatter for Twig template files which respects HTML and your time";
homepage = "https://github.com/MalteJanz/ludtwig";
license = licenses.mit;
maintainers = with maintainers; [
maltejanz
];
mainProgram = "ludtwig";
};
}

View File

@@ -0,0 +1,132 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
cmake,
pkg-config,
makeWrapper,
wrapGAppsHook3,
bzip2,
fontconfig,
freetype,
libGL,
libX11,
libXcursor,
libXrandr,
libXi,
libxkbcommon,
vulkan-loader,
wayland,
zenity,
kdePackages,
cairo,
pango,
atkmm,
gdk-pixbuf,
dbus-glib,
gtk3,
glib,
rclone,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ludusavi";
version = "0.29.1";
src = fetchFromGitHub {
owner = "mtkennerly";
repo = "ludusavi";
tag = "v${finalAttrs.version}";
hash = "sha256-IApPudo8oD6YkYJkGpowqpaqrsl2/Q2VFyYfYQI3mN0=";
};
cargoHash = "sha256-ixxUz+XJPzPu51sxHpXs92Tis2gj9SElqYtNiN+n2EY=";
dontWrapGApps = true;
nativeBuildInputs = [
cmake
installShellFiles
pkg-config
makeWrapper
wrapGAppsHook3
];
buildInputs = [
fontconfig
freetype
libX11
libXcursor
libXrandr
libXi
cairo
pango
atkmm
gdk-pixbuf
gtk3
];
postInstall = ''
install -Dm644 assets/linux/com.mtkennerly.ludusavi.metainfo.xml -t \
"$out/share/metainfo/"
install -Dm644 assets/icon.png \
"$out/share/icons/hicolor/64x64/apps/com.mtkennerly.ludusavi.png"
install -Dm644 assets/icon.svg \
"$out/share/icons/hicolor/scalable/apps/com.mtkennerly.ludusavi.svg"
install -Dm644 "assets/linux/com.mtkennerly.ludusavi.desktop" -t "$out/share/applications/"
install -Dm644 assets/MaterialIcons-Regular.ttf -t "$out/share/fonts/TTF/"
install -Dm644 LICENSE -t "$out/share/licenses/ludusavi/"
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd ludusavi \
--bash <($out/bin/ludusavi complete bash) \
--fish <($out/bin/ludusavi complete fish) \
--zsh <($out/bin/ludusavi complete zsh)
'';
postFixup =
let
libPath = lib.makeLibraryPath [
libGL
bzip2
fontconfig
freetype
libX11
libXcursor
libXrandr
libXi
libxkbcommon
vulkan-loader
wayland
gtk3
dbus-glib
glib
];
in
''
patchelf --set-rpath "${libPath}" "$out/bin/ludusavi"
wrapProgram $out/bin/ludusavi --prefix PATH : ${
lib.makeBinPath [
rclone
zenity
kdePackages.kdialog
]
} \
"''${gappsWrapperArgs[@]}"
'';
meta = {
description = "Backup tool for PC game saves";
homepage = "https://github.com/mtkennerly/ludusavi";
changelog = "https://github.com/mtkennerly/ludusavi/blob/v${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pasqui23
megheaiulian
iedame
];
mainProgram = "ludusavi";
};
})

View File

@@ -0,0 +1,79 @@
{
stdenvNoCC,
lib,
makeDesktopItem,
makeWrapper,
copyDesktopItems,
coreutils,
findutils,
zenity,
unzip,
cabextract,
libnotify,
fetchFromGitHub,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
name = "lug-helper";
version = "4.4";
src = fetchFromGitHub {
owner = "starcitizen-lug";
repo = "lug-helper";
tag = "v${finalAttrs.version}";
hash = "sha256-wYNYgwcves9nmUccDQPGekVt3BIB4QE/t6l9vUwXYUs=";
};
buildInputs = [
coreutils
findutils
zenity
];
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
desktopItems = [
(makeDesktopItem {
name = "lug-helper";
exec = "lug-helper";
icon = "lug-logo";
comment = "Star Citizen LUG Helper";
desktopName = "LUG Helper";
categories = [ "Utility" ];
mimeTypes = [ "application/x-lug-helper" ];
})
];
postInstall = ''
install -Dm755 lug-helper.sh $out/bin/lug-helper
install -Dm644 lug-logo.png $out/share/icons/hicolor/256x256/apps/lug-logo.png
install -Dm644 rsi-launcher.png $out/share/icons/hicolor/256x256/apps/rsi-launcher.png
install -Dm644 lib/* -t $out/share/lug-helper
wrapProgram $out/bin/lug-helper \
--prefix PATH : ${
lib.makeBinPath [
coreutils
findutils
zenity
cabextract
unzip
libnotify
]
} \
--prefix XDG_DATA_DIRS : "$out"
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Script to manage and optimize Star Citizen on Linux";
homepage = "https://github.com/starcitizen-lug/lug-helper";
changelog = "https://github.com/starcitizen-lug/lug-helper/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fuzen ];
platforms = lib.platforms.linux;
mainProgram = "lug-helper";
};
})

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitLab,
cmake,
openal,
pkg-config,
libogg,
libvorbis,
SDL2,
makeWrapper,
libpng,
libjpeg_turbo,
libGLU,
}:
let
inherit (lib)
licenses
maintainers
platforms
;
in
stdenv.mkDerivation rec {
pname = "lugaru";
version = "1.2";
src = fetchFromGitLab {
owner = "osslugaru";
repo = "lugaru";
rev = version;
sha256 = "089rblf8xw3c6dq96vnfla6zl8gxcpcbc1bj5jysfpq63hhdpypz";
};
nativeBuildInputs = [
makeWrapper
cmake
pkg-config
];
buildInputs = [
libGLU
openal
SDL2
libogg
libvorbis
libpng
libjpeg_turbo
];
cmakeFlags = [ "-DSYSTEM_INSTALL=ON" ];
meta = {
description = "Third person ninja rabbit fighting game";
mainProgram = "lugaru";
homepage = "https://osslugaru.gitlab.io";
maintainers = [ ];
platforms = platforms.linux;
license = licenses.gpl2Plus;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
python3,
fetchPypi,
}:
python3.pkgs.buildPythonApplication rec {
pname = "luigi";
version = "3.6.0";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-QbFIUCI8YZ2QBrMKzacz51a4g/x+YIFCBVdmRxkMluM=";
};
build-system = [ python3.pkgs.setuptools ];
pythonRelaxDeps = [ "tenacity" ];
dependencies = with python3.pkgs; [
python-dateutil
tornado
python-daemon
tenacity
];
pythonImportsCheck = [ "luigi" ];
# Requires tox, hadoop, and google cloud
doCheck = false;
# This enables accessing modules stored in cwd
makeWrapperArgs = [ "--prefix PYTHONPATH . :" ];
meta = {
description = "Python package that helps you build complex pipelines of batch jobs";
longDescription = ''
Luigi handles dependency resolution, workflow management, visualization,
handling failures, command line integration, and much more.
'';
homepage = "https://github.com/spotify/luigi";
changelog = "https://github.com/spotify/luigi/releases/tag/${version}";
license = [ lib.licenses.asl20 ];
maintainers = [ lib.maintainers.bhipple ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
writeScript,
pkg-config,
fetchurl,
libiconv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luit";
version = "20240910";
src = fetchurl {
url = "https://invisible-mirror.net/archives/luit/luit-${finalAttrs.version}.tgz";
hash = "sha256-oV1/y/wlrhRT1hrsI/9roEFF1ue3s7AHHrXP2jo6SdU=";
};
hardeningDisable = [
"bindnow"
"relro"
];
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libiconv ];
passthru.updateScript = writeScript "update-luit" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname luit | sort | tail -n1)"
update-source-version luit "$version"
'';
meta = {
description = "Filter between an arbitrary application and a UTF-8 terminal emulator converting the output and input between the locale's encoding and UTF-8";
homepage = "https://invisible-island.net/luit/";
# the website says it is licensed MIT-X11, but there are multiple licenses contained in the tarball
license = with lib.licenses; [
# some of them are supposed to be MIT-X11, but don't have the X11 specific section in their license
# MIT-X11 without the section is just MIT
mit
x11
# 2 files are gpl3+
gpl3Plus
];
mainProgram = "luit";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,31 @@
{
lib,
gawk,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "lukesmithxyz-bible-kjv";
version = "unstable-2022-06-01";
src = fetchFromGitHub {
owner = "lukesmithxyz";
repo = "kjv";
rev = "1b675c0396806a2a3d134c51fd11d9fed8ea3dc5";
hash = "sha256-ii5SGZmO99VYbKdebfEbN3rL7LLSSQ0jm5mGqX2G3o0=";
};
buildInputs = [ gawk ];
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Read the Word of God from your terminal + Apocrypha";
mainProgram = "kjv";
homepage = "https://lukesmith.xyz/articles/command-line-bibles";
license = licenses.unlicense;
platforms = platforms.unix;
maintainers = [ maintainers.wesleyjrz ];
};
}

View File

@@ -0,0 +1,14 @@
diff -Naur old/Makefile new/Makefile
--- old/Makefile 1969-12-31 21:00:01.000000000 -0300
+++ new/Makefile 2021-09-06 00:10:26.972466947 -0300
@@ -40,8 +40,8 @@
rm -rf st-$(VERSION)
install: st
- git submodule init
- git submodule update
+# git submodule init
+# git submodule update
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp -f st $(DESTDIR)$(PREFIX)/bin
cp -f st-copyout $(DESTDIR)$(PREFIX)/bin

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitHub,
fontconfig,
harfbuzz,
libX11,
libXext,
libXft,
ncurses,
pkg-config,
}:
stdenv.mkDerivation {
pname = "lukesmithxyz-st";
version = "0.pre+unstable=2021-08-10";
src = fetchFromGitHub {
owner = "LukeSmithxyz";
repo = "st";
rev = "e053bd6036331cc7d14f155614aebc20f5371d3a";
hash = "sha256-WwjuNxWoeR/ppJxJgqD20kzrn1kIfgDarkTOedX/W4k=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
fontconfig
harfbuzz
libX11
libXext
libXft
ncurses
];
patches = [
# eliminate useless calls to git inside Makefile
./0000-makefile-fix-install.diff
];
installPhase = ''
runHook preInstall
TERMINFO=$out/share/terminfo make install PREFIX=$out
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/LukeSmithxyz/st";
description = "Luke Smith's fork of st";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.linux;
};
}

727
pkgs/by-name/lu/lumafly/deps.json generated Normal file
View File

@@ -0,0 +1,727 @@
[
{
"pname": "Avalonia",
"version": "11.0.4",
"sha256": "0jid0x90dc8m609wqwbq87014yzih2iimz74wm6zi1j02k080jk0"
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.0.2023020321",
"sha256": "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"
},
{
"pname": "Avalonia.AvaloniaEdit",
"version": "11.0.0",
"sha256": "12ibz472083iiz5zskd1ivigggbl0d9yv3nazgw17s97nmnl2lpj"
},
{
"pname": "Avalonia.BuildServices",
"version": "0.0.29",
"sha256": "05mm7f0jssih3gbzqfgjnfq5cnqa85ihsg0z1897ciihv8qd3waq"
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.0.4",
"sha256": "1sqdcaknqazq4mw2x1jb6pfmfnyhpkd4xh6fl4ld85qikzzj7796"
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "11.0.4",
"sha256": "10kc1pfyi0jq29xavq059vfjm51igi45yikz7i1ys061zbjs0n62"
},
{
"pname": "Avalonia.Controls.ItemsRepeater",
"version": "11.0.4",
"sha256": "1p7mz33a6dn6ghvwajxdghq15mn5f6isvvqzxcjbnhh3m5c1zhrz"
},
{
"pname": "Avalonia.Desktop",
"version": "11.0.4",
"sha256": "101jlqx24d19nk0nd7x19pvbjjybckzgqh9h78c85vb98xbwh3ky"
},
{
"pname": "Avalonia.Diagnostics",
"version": "11.0.4",
"sha256": "1dxylsvaffzravz64rwq2wjjlr3392i5153nmkqk89ldaq70wjja"
},
{
"pname": "Avalonia.FreeDesktop",
"version": "11.0.4",
"sha256": "1sbgs6d1b751h0ipq249w7z3aclpfb42sw3f7g31vin9w8wxwa6q"
},
{
"pname": "Avalonia.HtmlRenderer",
"version": "11.0.0-rc1.1",
"sha256": "0b8idah8s6xi34s3ldvhl0rrph0sdbyvkx4yj3934ghcq1iga79a"
},
{
"pname": "Avalonia.Native",
"version": "11.0.4",
"sha256": "10fyr63sqb4xyr7rlk94rzjbnb9mbln95mb9papip5kb3sm8jx60"
},
{
"pname": "Avalonia.ReactiveUI",
"version": "11.0.4",
"sha256": "1hs29qvbhm5qdhys0j3d89c37qfalx1pcpxl3hh9adz11wc0nb3b"
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "11.0.4",
"sha256": "096436hhg45v02pp4f43mf00xn6blx7x66sb8fq5j4jn7479fynp"
},
{
"pname": "Avalonia.Skia",
"version": "11.0.4",
"sha256": "1ysmq4f8bxabpq3nhcrrvgwvxb9z7gx9565bvdyksdhsq16wyxym"
},
{
"pname": "Avalonia.Svg",
"version": "11.0.0",
"sha256": "1xmgaj2wnjdl16x4y6rmfp3q9faca5na90zlb8j62rxcwf1v3lkr"
},
{
"pname": "Avalonia.Themes.Fluent",
"version": "11.0.4",
"sha256": "03zdixi6m9g4mcxmp24z8dzamzqqy9i0wg069m4gl5p3wcvfbqla"
},
{
"pname": "Avalonia.Themes.Simple",
"version": "11.0.4",
"sha256": "1rncb8ifqarjc5gfh6ld0ldahvxy57a2hzi7vs826an4zl3r0yrx"
},
{
"pname": "Avalonia.Win32",
"version": "11.0.4",
"sha256": "07ijkpbhz59gvsxsik8mib8rhpm5yrpnjz66sjnxl8m0ghqnkf02"
},
{
"pname": "Avalonia.X11",
"version": "11.0.4",
"sha256": "0xq6xqd3cwwdcqsipvrs4rpf82nqhr45ispwjj4dxlyn4i1n8ryd"
},
{
"pname": "ColorTextBlock.Avalonia",
"version": "11.0.1",
"sha256": "0mkqh9hzr3z40wxhp0xy569cb4sq6lvq49f51n0kbdyvfnvbsipy"
},
{
"pname": "Deadpikle.AvaloniaProgressRing",
"version": "0.10.1",
"sha256": "1zk7ylw4iwl1rbnipq8djcrzwmgbsdwa6di00ml7drdpnrvzf600"
},
{
"pname": "DialogHost.Avalonia",
"version": "0.7.6",
"sha256": "1byzs1fqz4nhn2ljhyxpifhvdkpyg7k4xfjcb1h3pf0hr4y9fgf6"
},
{
"pname": "DynamicData",
"version": "7.9.5",
"sha256": "1m9qx8g6na5ka6kd9vhg8gjmxrnkzb6v5cl5yqp1kdjsw4rcwy6x"
},
{
"pname": "ExCSS",
"version": "4.1.4",
"sha256": "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"
},
{
"pname": "Fizzler",
"version": "1.2.1",
"sha256": "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"
},
{
"pname": "HarfBuzzSharp",
"version": "2.8.2.3",
"sha256": "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "2.8.2.3",
"sha256": "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "2.8.2.3",
"sha256": "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "2.8.2.3",
"sha256": "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "2.8.2.3",
"sha256": "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"
},
{
"pname": "HPackage.Net",
"version": "1.0.1",
"sha256": "1jm2gaydndpyhywdm4sbbvwzjk3sdd825fw2gxd1s6x6dbppsl3i"
},
{
"pname": "HtmlAgilityPack",
"version": "1.11.42",
"sha256": "0cvnc1qdfcjbqkh335bv4wp44zisb4hc69lq3zphiyzqfrjisnyb"
},
{
"pname": "JetBrains.Annotations",
"version": "2023.2.0",
"sha256": "0nx7nrzbg9gk9skdc9x330cbr5xbsly6z9gzxm46vywf55yp8vaj"
},
{
"pname": "Markdown.Avalonia",
"version": "11.0.1",
"sha256": "08sv0cmzhhwnw0mv9dc7gzr1kvlqrl5pgmc045gigkqb3fi4zps1"
},
{
"pname": "Markdown.Avalonia.Html",
"version": "11.0.1",
"sha256": "00ipmxrq994w3vdqxicbw2dpv6nm54n2xz0xkvn127p8qvb734a7"
},
{
"pname": "Markdown.Avalonia.Svg",
"version": "11.0.1",
"sha256": "1lhfb9jk70fgfng87k2kxr82glrmrhv3llyd1kylmdv2vl3w9gwg"
},
{
"pname": "Markdown.Avalonia.SyntaxHigh",
"version": "11.0.1",
"sha256": "076wn8ylpxiawn9vnsy6z6d8y4mb0nk80j52aaqm3293f9cqajz6"
},
{
"pname": "Markdown.Avalonia.Tight",
"version": "11.0.1",
"sha256": "0bxclsly98jngdw4ykf23ip1x78d5l0xkqbqmny0pjw3pi4nsxzk"
},
{
"pname": "MessageBox.Avalonia",
"version": "3.1.4",
"sha256": "1qfaadvax0yc6wlqbm88ilz3jqzx0qh855ixymlkbi7wmg62fxzc"
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.0",
"sha256": "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"
},
{
"pname": "Microsoft.CodeAnalysis.Analyzers",
"version": "3.0.0",
"sha256": "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"
},
{
"pname": "Microsoft.CodeAnalysis.Common",
"version": "3.8.0",
"sha256": "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"
},
{
"pname": "Microsoft.CodeAnalysis.CSharp",
"version": "3.8.0",
"sha256": "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"
},
{
"pname": "Microsoft.CodeAnalysis.CSharp.Scripting",
"version": "3.8.0",
"sha256": "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"
},
{
"pname": "Microsoft.CodeAnalysis.Scripting.Common",
"version": "3.8.0",
"sha256": "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"
},
{
"pname": "Microsoft.CSharp",
"version": "4.3.0",
"sha256": "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"
},
{
"pname": "Microsoft.Extensions.DependencyInjection",
"version": "8.0.0-preview.7.23375.6",
"sha256": "0xjffkqxhz0a2fv91rpiajksni7g8h3nl6cq1jzgyh0vx692n7xg"
},
{
"pname": "Microsoft.Extensions.DependencyInjection.Abstractions",
"version": "8.0.0-preview.7.23375.6",
"sha256": "15c3pjyqqn47shxmzxkp0bmsnqa6721cphncmp7vqa3735wqp7jh"
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"sha256": "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "2.1.2",
"sha256": "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "1.1.0",
"sha256": "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"
},
{
"pname": "Microsoft.Toolkit.HighPerformance",
"version": "7.1.2",
"sha256": "18l950mq0l8s1z771l9p332ni7jryidjh4hi9p37l6p8frcnccxb"
},
{
"pname": "Microsoft.Win32.SystemEvents",
"version": "6.0.0",
"sha256": "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"
},
{
"pname": "Mono.Cecil",
"version": "0.11.5",
"sha256": "1l388sy7ibsq4b2pj08g3di0g8yppq47chd7ip10kwml6mpp1wcw"
},
{
"pname": "NetSparkleUpdater.SparkleUpdater",
"version": "2.3.0-preview20230704001",
"sha256": "07j73ak79wwxl62pj35za1la47537xjbb4c7fjq8zdy2bzjifc23"
},
{
"pname": "NetSparkleUpdater.UI.Avalonia",
"version": "3.0.0-preview20230703001",
"sha256": "04d53xb30hx86p6ski6kvv67bfdi6p4xim8v59rfyc388f363nkl"
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.3",
"sha256": "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"
},
{
"pname": "Newtonsoft.Json.Schema",
"version": "3.0.15",
"sha256": "1nmc9zxpcyyf3f2ypxw6vnjwlw5sxjv13r65p2dy8xrx8jkgaslp"
},
{
"pname": "Portable.BouncyCastle",
"version": "1.9.0",
"sha256": "0kphjwz4hk2nki3b4f9z096xzd520nrpvi3cjib8fkjk6zhwrr8q"
},
{
"pname": "PropertyChanged.SourceGenerator",
"version": "1.0.8",
"sha256": "05ygdj1sizcw678vf459hzhz4ynz2s5s206vl99g5gy3d9kaham6"
},
{
"pname": "ReactiveUI",
"version": "18.3.1",
"sha256": "1lxkc8yk9glj0w9n5vry2dnwwvh8152ad2c5bivk8aciq64zidyn"
},
{
"pname": "runtime.any.System.Collections",
"version": "4.3.0",
"sha256": "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"
},
{
"pname": "runtime.any.System.Globalization",
"version": "4.3.0",
"sha256": "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"
},
{
"pname": "runtime.any.System.IO",
"version": "4.3.0",
"sha256": "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"
},
{
"pname": "runtime.any.System.Reflection",
"version": "4.3.0",
"sha256": "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"
},
{
"pname": "runtime.any.System.Reflection.Extensions",
"version": "4.3.0",
"sha256": "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"
},
{
"pname": "runtime.any.System.Reflection.Primitives",
"version": "4.3.0",
"sha256": "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"
},
{
"pname": "runtime.any.System.Resources.ResourceManager",
"version": "4.3.0",
"sha256": "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"
},
{
"pname": "runtime.any.System.Runtime",
"version": "4.3.0",
"sha256": "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"
},
{
"pname": "runtime.any.System.Runtime.Handles",
"version": "4.3.0",
"sha256": "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"
},
{
"pname": "runtime.any.System.Runtime.InteropServices",
"version": "4.3.0",
"sha256": "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"
},
{
"pname": "runtime.any.System.Text.Encoding",
"version": "4.3.0",
"sha256": "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"
},
{
"pname": "runtime.any.System.Threading.Tasks",
"version": "4.3.0",
"sha256": "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"
},
{
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"
},
{
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"
},
{
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"
},
{
"pname": "runtime.native.System",
"version": "4.3.0",
"sha256": "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"
},
{
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"
},
{
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"
},
{
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"
},
{
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"
},
{
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"
},
{
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"
},
{
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"
},
{
"pname": "runtime.unix.System.Diagnostics.Debug",
"version": "4.3.0",
"sha256": "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"
},
{
"pname": "runtime.unix.System.Private.Uri",
"version": "4.3.0",
"sha256": "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"
},
{
"pname": "runtime.unix.System.Runtime.Extensions",
"version": "4.3.0",
"sha256": "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"
},
{
"pname": "ShimSkiaSharp",
"version": "1.0.0",
"sha256": "0gdsrzh8q8mxlm7sxvai7zshaz93a3dm1ha4cgs4845lfhpn8nhc"
},
{
"pname": "SkiaSharp",
"version": "2.88.3",
"sha256": "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.3",
"sha256": "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.3",
"sha256": "191ajgi6fnfqcvqvkayjsxasiz6l0bv3pps8vv9abbyc4b12qvph"
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.3",
"sha256": "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.3",
"sha256": "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"
},
{
"pname": "Splat",
"version": "14.4.1",
"sha256": "03ycyjn2ii44npi015p4rk344xnjgdzz02cf63cmhx2ab8hv6p4b"
},
{
"pname": "Splat",
"version": "14.7.1",
"sha256": "1rs8bmwcvzg4yn05zglgk7vbmyi2flyyhjqn62sx1cjkrd9m0cs7"
},
{
"pname": "Splat.Microsoft.Extensions.DependencyInjection",
"version": "14.7.1",
"sha256": "0niwhksr74frjrkb47ihf44fq0353y4y1i3cim0fd855brvq8xh5"
},
{
"pname": "Svg.Custom",
"version": "1.0.0",
"sha256": "0bmvgaqy4iaxw9x88ifx3a2zz0vw3p9w6pj4bk3xfnf5p9vjx1mr"
},
{
"pname": "Svg.Model",
"version": "1.0.0",
"sha256": "0yrjcqcrlgqpdm3bi59nc3fppcqgrfc7jddjwxjj2q423gimip97"
},
{
"pname": "Svg.SourceGenerator.Skia",
"version": "1.0.0.1",
"sha256": "0sjx3kqwrmrlv9jsb59hwgs9ahj4qryrmqmgq41qnqi0w8d7yjyr"
},
{
"pname": "System.Collections",
"version": "4.3.0",
"sha256": "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"
},
{
"pname": "System.Collections.Immutable",
"version": "1.6.0",
"sha256": "1pbxzdz3pwqyybzv5ff2b7nrc281bhg7hq34w0fn1w3qfgrbwyw2"
},
{
"pname": "System.Collections.Immutable",
"version": "5.0.0",
"sha256": "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"
},
{
"pname": "System.ComponentModel.Annotations",
"version": "4.5.0",
"sha256": "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.3.0",
"sha256": "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"
},
{
"pname": "System.Drawing.Common",
"version": "6.0.0",
"sha256": "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"
},
{
"pname": "System.Dynamic.Runtime",
"version": "4.3.0",
"sha256": "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"
},
{
"pname": "System.Globalization",
"version": "4.3.0",
"sha256": "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"
},
{
"pname": "System.IO",
"version": "4.3.0",
"sha256": "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"
},
{
"pname": "System.IO.Abstractions",
"version": "19.2.69",
"sha256": "0k22xbyypfw0s4lia46c2ykcw1mwnkq1fqrw7bql6q3kvwm7ab7h"
},
{
"pname": "System.IO.Pipelines",
"version": "6.0.0",
"sha256": "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"
},
{
"pname": "System.Linq",
"version": "4.3.0",
"sha256": "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"
},
{
"pname": "System.Linq.Expressions",
"version": "4.3.0",
"sha256": "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"
},
{
"pname": "System.Memory",
"version": "4.5.4",
"sha256": "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"
},
{
"pname": "System.Numerics.Vectors",
"version": "4.5.0",
"sha256": "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"
},
{
"pname": "System.ObjectModel",
"version": "4.3.0",
"sha256": "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"
},
{
"pname": "System.Private.Uri",
"version": "4.3.0",
"sha256": "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"
},
{
"pname": "System.Reactive",
"version": "5.0.0",
"sha256": "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"
},
{
"pname": "System.Reactive",
"version": "6.0.0",
"sha256": "1mkvx1fwychpczksy6svfmniqhbm3xqblxqik6178l12xgq7aw45"
},
{
"pname": "System.Reflection",
"version": "4.3.0",
"sha256": "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"
},
{
"pname": "System.Reflection.Emit",
"version": "4.3.0",
"sha256": "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"
},
{
"pname": "System.Reflection.Emit.ILGeneration",
"version": "4.3.0",
"sha256": "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"
},
{
"pname": "System.Reflection.Emit.Lightweight",
"version": "4.3.0",
"sha256": "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"
},
{
"pname": "System.Reflection.Extensions",
"version": "4.3.0",
"sha256": "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"
},
{
"pname": "System.Reflection.Metadata",
"version": "5.0.0",
"sha256": "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"
},
{
"pname": "System.Reflection.Primitives",
"version": "4.3.0",
"sha256": "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"
},
{
"pname": "System.Reflection.TypeExtensions",
"version": "4.3.0",
"sha256": "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.3.0",
"sha256": "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"
},
{
"pname": "System.Runtime",
"version": "4.3.0",
"sha256": "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "4.7.1",
"sha256": "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"
},
{
"pname": "System.Runtime.Extensions",
"version": "4.3.0",
"sha256": "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"
},
{
"pname": "System.Runtime.Handles",
"version": "4.3.0",
"sha256": "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"
},
{
"pname": "System.Runtime.InteropServices",
"version": "4.3.0",
"sha256": "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"
},
{
"pname": "System.Text.Encoding",
"version": "4.3.0",
"sha256": "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"
},
{
"pname": "System.Text.Encoding.CodePages",
"version": "4.5.1",
"sha256": "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"
},
{
"pname": "System.Text.Encodings.Web",
"version": "7.0.0",
"sha256": "1151hbyrcf8kyg1jz8k9awpbic98lwz9x129rg7zk1wrs6vjlpxl"
},
{
"pname": "System.Text.Json",
"version": "7.0.3",
"sha256": "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9"
},
{
"pname": "System.Threading",
"version": "4.3.0",
"sha256": "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"
},
{
"pname": "System.Threading.Tasks",
"version": "4.3.0",
"sha256": "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.5.4",
"sha256": "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"
},
{
"pname": "System.ValueTuple",
"version": "4.5.0",
"sha256": "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"
},
{
"pname": "TestableIO.System.IO.Abstractions",
"version": "19.2.69",
"sha256": "1y6xn5fgh4ia5ympjf33pvry4l76hgn7jwimvirbq8bkkc32v4hg"
},
{
"pname": "TestableIO.System.IO.Abstractions.Wrappers",
"version": "19.2.69",
"sha256": "1fjcgya57bx9n00y926d9bwrcii7l41gr470gz00q9ipj726wy30"
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.15.0",
"sha256": "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"
}
]

View File

@@ -0,0 +1,78 @@
{
lib,
fetchFromGitHub,
buildDotnetModule,
dotnetCorePackages,
zlib,
icu,
openssl,
icoutils,
copyDesktopItems,
makeDesktopItem,
nix-update-script,
}:
buildDotnetModule rec {
pname = "lumafly";
version = "3.3.0.0";
src = fetchFromGitHub {
owner = "TheMulhima";
repo = "lumafly";
tag = "v${version}";
hash = "sha256-GVPMAwxbq9XlKjMKd9G5yUol42f+6lSyHukN7NMCVDA=";
};
# Use .NET 9.0 since 7.0 is EOL
dotnetFlags = [ "-p:TargetFramework=net9.0" ];
projectFile = "Lumafly/Lumafly.csproj";
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_9_0;
dotnet-runtime = dotnetCorePackages.sdk_9_0;
selfContainedBuild = true;
passthru.updateScript = nix-update-script { };
runtimeDeps = [
zlib
icu
openssl
];
nativeBuildInputs = [
icoutils
copyDesktopItems
];
executables = [ "Lumafly" ];
postFixup = ''
# Icon for the desktop file
icotool -x $src/Lumafly/Assets/Lumafly.ico
install -D Lumafly_1_32x32x32.png $out/share/icons/hicolor/32x32/apps/lumafly.png
'';
desktopItems = [
(makeDesktopItem {
desktopName = "Lumafly";
name = "lumafly";
exec = "Lumafly";
icon = "lumafly";
comment = "A cross platform mod manager for Hollow Knight written in Avalonia";
type = "Application";
categories = [ "Game" ];
})
];
meta = {
description = "Cross platform mod manager for Hollow Knight written in Avalonia";
homepage = "https://themulhima.github.io/Lumafly/";
license = lib.licenses.gpl3Plus;
mainProgram = "Lumafly";
maintainers = with lib.maintainers; [ rohanssrao ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
ddcutil,
fetchFromGitHub,
gtk4,
installShellFiles,
wrapGAppsHook4,
libadwaita,
nix-update-script,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "luminance";
version = "1.1.0";
src = fetchFromGitHub {
owner = "sidevesh";
repo = "Luminance";
tag = finalAttrs.version;
hash = "sha256-1xDRs+OBzcrB75pILA3ZxIrZEleWVBROBNZz0MsCWnA=";
};
# Use our own ddcbc-api source
#
# Patch build.sh with the stdenv agnostic `$CC` variable
postPatch = ''
rmdir ddcbc-api
ln -sf ${finalAttrs.passthru.ddcbc-api} ddcbc-api
patchShebangs build.sh
substituteInPlace build.sh \
--replace-fail 'gcc' '"$CC"'
'';
strictDeps = true;
nativeBuildInputs = [
installShellFiles
pkg-config
wrapGAppsHook4
];
buildInputs = [
ddcutil
gtk4
libadwaita
];
postBuild = "./build.sh";
postInstall = ''
mv build/app com.sidevesh.Luminance
installBin com.sidevesh.Luminance
install -Dm644 install_files/44-backlight-permissions.rules -t $out/lib/udev/rules.d
install -Dm644 install_files/com.sidevesh.Luminance.desktop -t $out/share/applications
install -Dm644 install_files/com.sidevesh.Luminance.gschema.xml -t $out/share/glib-2.0/schemas
glib-compile-schemas $out/share/glib-2.0/schemas
mv icons $out/share/icons
rm $out/share/icons/com.sidevesh.luminance.Source.svg
'';
passthru = {
ddcbc-api = fetchFromGitHub {
owner = "ahshabbir";
repo = "ddcbc-api";
rev = "f54500284fcfc2f140d5ae01df779f3f47c9b563";
hash = "sha256-ViKik3468AHjE7NxdfrKicDNA0ENG6DmIplYtKVqduw=";
};
updateScript = nix-update-script { };
};
meta = {
description = "Simple GTK application to control brightness of displays including external displays supporting DDC/CI";
homepage = "https://github.com/sidevesh/Luminance";
changelog = "https://github.com/sidevesh/Luminance/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ getchoo ];
inherit (ddcutil.meta) platforms;
mainProgram = "com.sidevesh.Luminance";
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "luminous-ttv";
version = "0.5.8";
src = fetchFromGitHub {
owner = "AlyoshaVasilieva";
repo = "luminous-ttv";
rev = "v${version}";
hash = "sha256-pT+hiREKdzw9MKv28QpLK6LmHvnRci26f0DlcXns2rA=";
};
cargoHash = "sha256-A5fUATbOuwSt0n1KV/+bbd65mDwWhllGraf2RrBTK6s=";
meta = {
description = "Rust server to retrieve and relay a playlist for Twitch livestreams/VODs";
homepage = "https://github.com/AlyoshaVasilieva/luminous-ttv";
downloadPage = "https://github.com/AlyoshaVasilieva/luminous-ttv/releases/latest";
changelog = "https://github.com/AlyoshaVasilieva/luminous-ttv/releases/tag/v${version}";
license = with lib.licenses; [
gpl3Only
mit
];
mainProgram = "luminous-ttv";
maintainers = with lib.maintainers; [ alex ];
};
}

View File

@@ -0,0 +1,116 @@
{
stdenv,
lib,
fetchurl,
dpkg,
autoPatchelfHook,
zlib,
libgcc,
fontconfig,
libX11,
lttng-ust,
icu,
libICE,
libSM,
libXcursor,
openssl,
imagemagick,
makeWrapper,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lunacy";
version = "11.6";
src = fetchurl {
url = "https://lcdn.icons8.com/setup/Lunacy_${finalAttrs.version}.deb";
hash = "sha256-VDd2qBNjCyfOy3vZFaVc3BI8zhQmzEIxYDNws7DIYCc=";
};
buildInputs = [
zlib
libgcc
stdenv.cc.cc
lttng-ust
fontconfig.lib
# Runtime deps
libICE
libSM
libX11
libXcursor
];
nativeBuildInputs = [
dpkg
autoPatchelfHook
makeWrapper
];
# adds to the RPATHS of all shared objects (exe and libs)
appendRunpaths =
map (pkg: (lib.getLib pkg) + "/lib") [
icu
openssl
stdenv.cc.libc
stdenv.cc.cc
]
++ [
# technically, this should be in runtimeDependencies but will not work as
# "lib" is appended to all elements in the array
"${placeholder "out"}/lib/lunacy"
];
# will add to the RPATH of executable only
runtimeDependencies = [
libICE
libSM
libX11
libXcursor
];
dontBuild = true;
dontStrip = true;
installPhase = ''
runHook preInstall
mkdir -p "$out/lib";
cp -R "opt/icons8/lunacy" "$out/lib"
cp -R "usr/share" "$out/share"
# Prepare the desktop icon, the upstream icon is 200x200 but the hicolor theme does not
# support this resolution. Nearest sizes are 192x192 and 256x256.
${imagemagick}/bin/convert "opt/icons8/lunacy/Assets/LunacyLogo.png" -resize 192x192 lunacy.png
install -D lunacy.png "$out/share/icons/hicolor/192x192/apps/lunacy.png"
runHook postInstall
'';
postInstall = ''
substituteInPlace $out/share/applications/lunacy.desktop \
--replace-fail "Exec=/opt/icons8/lunacy/Lunacy" "Exec=lunacy" \
--replace-fail "Icon=/opt/icons8/lunacy/Assets/LunacyLogo.png" "Icon=lunacy"
'';
postFixup = ''
mkdir $out/bin
# The wrapper is needed instead of a symlink to prevent a random "Unsupported file format" when running the app.
makeWrapper "$out/lib/lunacy/Lunacy" "$out/bin/lunacy"
'';
meta = {
description = "Free design software that keeps your flow with AI tools and built-in graphics";
homepage = "https://icons8.com/lunacy";
changelog = "https://lunacy.docs.icons8.com/release-notes/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
eliandoran
luftmensch-luftmensch
];
platforms = lib.platforms.linux;
sourceProvenance = [ lib.sourceTypes.binaryBytecode ];
mainProgram = "lunacy";
};
})

View File

@@ -0,0 +1,45 @@
{
appimageTools,
fetchurl,
lib,
makeWrapper,
}:
appimageTools.wrapType2 rec {
pname = "lunarclient";
version = "3.5.1";
src = fetchurl {
url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}-ow.AppImage";
hash = "sha512-gwJSDnf8treueqAejDuAaRV3yFpOFMCL6WOODhjuD9UxLNvg94Z4SXmcnYBBuuUeQQi4+r5lM7EM97XzX86sSA==";
};
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands =
let
contents = appimageTools.extract { inherit pname version src; };
in
''
wrapProgram $out/bin/lunarclient \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
install -Dm444 ${contents}/lunarclient.desktop -t $out/share/applications/
install -Dm444 ${contents}/lunarclient.png -t $out/share/pixmaps/
substituteInPlace $out/share/applications/lunarclient.desktop \
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lunarclient' \
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Free Minecraft client with mods, cosmetics, and performance boost";
homepage = "https://www.lunarclient.com/";
license = with licenses; [ unfree ];
mainProgram = "lunarclient";
maintainers = with maintainers; [
Technical27
surfaceflinger
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,12 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl yq
set -eu -o pipefail
target="$(dirname "$(readlink -f "$0")")/package.nix"
host="https://launcherupdates.lunarclientcdn.com"
metadata=$(curl "$host/latest-ow-linux.yml")
version=$(echo "$metadata" | yq .version -r | cut -d- -f1)
hash=$(echo "$metadata" | yq .sha512 -r)
sed -i "s@version = .*;@version = \"$version\";@g" "$target"
sed -i "s@hash.* = .*;@hash = \"sha512-$hash\";@g" "$target"

View File

@@ -0,0 +1,62 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
mlton,
lua5_3,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
version = "0.2.1";
pname = "lunarml";
src = fetchFromGitHub {
owner = "minoki";
repo = "LunarML";
tag = "v${finalAttrs.version}";
hash = "sha256-wNcsvtIR/MbvwAIhybc7zzbS+RgfwndQ1jdDVdte+44=";
};
outputs = [
"out"
"doc"
];
nativeBuildInputs = [
mlton
];
nativeCheckInputs = [
lua5_3
];
postBuild = ''
make -C thirdparty install
'';
doCheck = true;
installPhase = ''
runHook preInstall
mkdir -p $doc/lunarml $out/{bin,lib}
cp -r bin $out
cp -r lib $out
cp -r example $doc/lunarml
runHook postInstall
'';
meta = {
description = "Standard ML compiler that produces Lua/JavaScript";
mainProgram = "lunarml";
homepage = "https://github.com/minoki/LunarML";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
toastal
ratsclub
];
platforms = mlton.meta.platforms;
};
})

View File

@@ -0,0 +1,149 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
cargo,
curl,
fd,
fzf,
git,
gnumake,
gnused,
gnutar,
gzip,
lua-language-server,
neovim,
neovim-node-client,
nodejs,
ripgrep,
tree-sitter,
unzip,
nvimAlias ? false,
viAlias ? false,
vimAlias ? false,
globalConfig ? "",
}:
stdenv.mkDerivation (finalAttrs: {
inherit
nvimAlias
viAlias
vimAlias
globalConfig
;
pname = "lunarvim";
version = "1.4.0";
src = fetchFromGitHub {
owner = "LunarVim";
repo = "LunarVim";
tag = finalAttrs.version;
hash = "sha256-uuXaDvZ9VaRJlZrdu28gawSOJFVSo5XX+JG53IB+Ijw=";
};
nativeBuildInputs = [
gnused
makeWrapper
];
runtimeDeps = [
stdenv.cc
cargo
curl
fd
fzf
git
gnumake
gnutar
gzip
lua-language-server
neovim
nodejs
neovim-node-client
ripgrep
tree-sitter
unzip
];
buildPhase = ''
runHook preBuild
mkdir -p share/lvim
cp init.lua utils/installer/config.example.lua share/lvim
cp -r lua snapshots share/lvim
mkdir bin
cp utils/bin/lvim.template bin/lvim
chmod +x bin/lvim
# LunarVim automatically copies config.example.lua, but we need to make it writable.
sed -i "2 i\\
if [ ! -f \$HOME/.config/lvim/config.lua ]; then \\
cp $out/share/lvim/config.example.lua \$HOME/.config/lvim/config.lua \\
chmod +w \$HOME/.config/lvim/config.lua \\
fi
" bin/lvim
substituteInPlace bin/lvim \
--replace NVIM_APPNAME_VAR lvim \
--replace RUNTIME_DIR_VAR \$HOME/.local/share/lvim \
--replace CONFIG_DIR_VAR \$HOME/.config/lvim \
--replace CACHE_DIR_VAR \$HOME/.cache/lvim \
--replace BASE_DIR_VAR $out/share/lvim \
--replace nvim ${neovim}/bin/nvim
# Allow language servers to be overridden by appending instead of prepending
# the mason.nvim path.
echo "lvim.builtin.mason.PATH = \"append\"" > share/lvim/global.lua
echo ${lib.strings.escapeShellArg finalAttrs.globalConfig} >> share/lvim/global.lua
sed -i "s/add_to_path()/add_to_path(true)/" share/lvim/lua/lvim/core/mason.lua
sed -i "/Log:set_level/idofile(\"$out/share/lvim/global.lua\")" share/lvim/lua/lvim/config/init.lua
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r bin share $out
for iconDir in utils/desktop/*/; do
install -Dm444 $iconDir/lvim.svg -t $out/share/icons/hicolor/$(basename $iconDir)/apps
done
install -Dm444 utils/desktop/lvim.desktop -t $out/share/applications
wrapProgram $out/bin/lvim --prefix PATH : ${lib.makeBinPath finalAttrs.runtimeDeps} \
--prefix LD_LIBRARY_PATH : ${lib.getLib stdenv.cc.cc} \
--prefix CC : ${stdenv.cc.targetPrefix}cc
''
+ lib.optionalString finalAttrs.nvimAlias ''
ln -s $out/bin/lvim $out/bin/nvim
''
+ lib.optionalString finalAttrs.viAlias ''
ln -s $out/bin/lvim $out/bin/vi
''
+ lib.optionalString finalAttrs.vimAlias ''
ln -s $out/bin/lvim $out/bin/vim
''
+ ''
runHook postInstall
'';
meta = with lib; {
description = "IDE layer for Neovim";
homepage = "https://www.lunarvim.org/";
changelog = "https://github.com/LunarVim/LunarVim/blob/${finalAttrs.src.rev}/CHANGELOG.md";
sourceProvenance = with sourceTypes; [ fromSource ];
license = licenses.gpl3Only;
maintainers = with maintainers; [
prominentretail
lebensterben
];
platforms = platforms.unix;
mainProgram = "lvim";
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
plutovg,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lunasvg";
version = "3.5.0";
src = fetchFromGitHub {
owner = "sammycage";
repo = "lunasvg";
tag = "v${finalAttrs.version}";
hash = "sha256-eSkYkxdV5L31cIJtH6cVfQU2nguA3BPCQXnIMnColek=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
plutovg
];
cmakeFlags = [
(lib.cmakeBool "USE_SYSTEM_PLUTOVG" true)
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
# the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
# (setting it to an absolute path causes include files to go to $out/$out/include,
# because the absolute path is interpreted with root at $out).
"-DCMAKE_INSTALL_INCLUDEDIR=include"
"-DCMAKE_INSTALL_LIBDIR=lib"
];
passthru.tests = {
pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
versionCheck = true;
};
cmake-config = testers.hasCmakeConfigModules {
package = finalAttrs.finalPackage;
buildInputs = [ plutovg ];
moduleNames = [ "lunasvg" ];
versionCheck = true;
};
};
meta = {
homepage = "https://github.com/sammycage/lunasvg";
changelog = "https://github.com/sammycage/lunasvg/releases/tag/v${finalAttrs.version}";
description = "SVG rendering and manipulation library in C++";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.eymeric ];
platforms = lib.platforms.all;
pkgConfigModules = [ "lunasvg" ];
};
})

View File

@@ -0,0 +1,48 @@
{
lib,
appimageTools,
fetchurl,
nix-update-script,
}:
let
version = "2.1.10";
pname = "lunatask";
src = fetchurl {
url = "https://github.com/lunatask/lunatask/releases/download/v${version}/Lunatask-${version}.AppImage";
hash = "sha256-8lnMg3mkdfXqimOdyujk/DE8CU6lzj9RDM8Nb2cEUms=";
};
appimageContents = appimageTools.extract {
inherit pname version src;
};
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D -t $out/share/applications ${appimageContents}/lunatask.desktop
install -m 444 -D -t $out/share/icons/hicolor/512x512/apps ${appimageContents}/lunatask.png
substituteInPlace $out/share/applications/lunatask.desktop \
--replace-fail 'Exec=AppRun' 'Exec=lunatask'
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "All-in-one encrypted todo list, notebook, habit and mood tracker, pomodoro timer, and journaling app";
longDescription = ''
Lunatask is an all-in-one encrypted todo list, notebook, habit and mood tracker, pomodoro timer, and journaling app. It remembers stuff for you and keeps track of your mental health.
'';
homepage = "https://lunatask.app";
downloadPage = "https://lunatask.app/download";
changelog = "https://lunatask.app/releases/${version}";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [ zi3m5f ];
platforms = [ "x86_64-linux" ];
mainProgram = "lunatask";
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
unstableGitUpdater,
}:
rustPlatform.buildRustPackage {
pname = "lunatic";
version = "0.13.2-unstable-2025-03-29";
src = fetchFromGitHub {
owner = "lunatic-solutions";
repo = "lunatic";
rev = "28a2f387ebf6a64ce4b87e2638812e2c032d5049";
hash = "sha256-FnUYnSWarQf68jBfSlIKVZbQHJt5U93MvA6rbNJE23U=";
};
cargoHash = "sha256-+2koGrhM9VMLh8uO1YcaugcfmZaCP4S2twKem+y2oks=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
checkFlags = [
# requires simd support which is not always available on hydra
"--skip=state::tests::import_filter_signature_matches"
];
passthru.updateScript = unstableGitUpdater {
tagPrefix = "v";
branch = "main";
};
meta = with lib; {
description = "Erlang inspired runtime for WebAssembly";
homepage = "https://lunatic.solutions";
changelog = "https://github.com/lunatic-solutions/lunatic/blob/main/CHANGELOG.md";
license = with licenses; [
mit # or
asl20
];
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
cmake,
}:
rustPlatform.buildRustPackage rec {
pname = "lune";
version = "0.10.3";
src = fetchFromGitHub {
owner = "filiptibell";
repo = "lune";
tag = "v${version}";
hash = "sha256-pWOGaVugfnwaA4alFP85ha+/iaN8x6KOVnx38vfFk78=";
fetchSubmodules = true;
};
cargoHash = "sha256-cq7Sgq9f2XpVTgEOMfR/G7sTqcWLwuJBgG9U+h4IMWQ=";
# error: linker `aarch64-linux-gnu-gcc` not found
postPatch = ''
rm .cargo/config.toml
'';
checkFlags = [
# require internet access
"--skip=tests::net_request_codes"
"--skip=tests::net_request_compression"
"--skip=tests::net_request_https"
"--skip=tests::net_request_methods"
"--skip=tests::net_request_query"
"--skip=tests::net_request_redirect"
"--skip=tests::net_socket_basic"
"--skip=tests::net_socket_wss"
"--skip=tests::net_socket_wss_rw"
"--skip=tests::net_tcp_basic"
"--skip=tests::net_tcp_info"
"--skip=tests::net_tcp_tls"
"--skip=tests::roblox_instance_custom_async"
# uses root as the CWD
"--skip=tests::process_exec_cwd"
];
meta = with lib; {
description = "Standalone Luau script runtime";
mainProgram = "lune";
homepage = "https://github.com/lune-org/lune";
changelog = "https://github.com/lune-org/lune/blob/${src.rev}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ lammermann ];
};
}

View File

@@ -0,0 +1,24 @@
{
"dependencies": {
"arsd-official": {
"version": "7.2.0",
"sha256": "1m546r6l0pkk80y5f3ff8im08hp59nwzjb5ikjhfiswvdizpwjlh"
},
"fuzzyd": {
"version": "2.2.0-beta",
"sha256": "0wzih4yrlrrj12ls9hd27gnxrj4j4c0ha9xprdfc7azszlv16j6g"
},
"ncurses": {
"version": "1.0.0",
"sha256": "0ivl88vp2dy9rpv6x3f9jlyqa7aps2x1kkyx80w2d4vcs31pzmb2"
},
"riverd-loader": {
"version": "1.0.2",
"sha256": "0c94551bscnia7vpixaq4xd2anprkd7pkf0q0anyadv5kqa8xgip"
},
"riverd-ncurses": {
"version": "1.0.5",
"sha256": "1wgdschv6hpdjykf5bblxphnhnpy2kvw8hq8h5iaygi9zr7jf286"
}
}
}

View File

@@ -0,0 +1,44 @@
{
lib,
buildDubPackage,
fetchFromGitHub,
ncurses,
}:
buildDubPackage rec {
pname = "luneta";
version = "0.7.4";
src = fetchFromGitHub {
owner = "fbeline";
repo = "luneta";
rev = "v${version}";
hash = "sha256-pYE8hccXT87JIMh71PtXzVQBegTzU7bdpVEaV2VkaEk=";
};
# not sure why, but this alias does not resolve
postPatch = ''
substituteInPlace source/luneta/keyboard.d \
--replace-fail "wint_t" "dchar"
'';
# ncurses dub package version is locked to 1.0.0 instead of using ~master
dubLock = ./dub-lock.json;
buildInputs = [ ncurses ];
installPhase = ''
runHook preInstall
install -Dm755 luneta -t $out/bin
runHook postInstall
'';
meta = {
changelog = "https://github.com/fbeline/luneta/releases/tag/${src.rev}";
description = "Interactive filter and fuzzy finder for the command-line";
homepage = "https://github.com/fbeline/luneta";
license = lib.licenses.gpl2Only;
mainProgram = "luneta";
maintainers = with lib.maintainers; [ tomasajt ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
jack2,
cairo,
liblo,
libsndfile,
libsamplerate,
ntk,
}:
stdenv.mkDerivation rec {
pname = "luppp";
version = "1.2.1";
src = fetchFromGitHub {
owner = "openAVproductions";
repo = "openAV-Luppp";
rev = "release-${version}";
sha256 = "1ncbn099fyfnr7jw2bp3wf2g9k738lw53m6ssw6wji2wxwmghv78";
};
nativeBuildInputs = [
meson
ninja
pkg-config
];
buildInputs = [
jack2
cairo
liblo
libsndfile
libsamplerate
ntk
];
meta = with lib; {
homepage = "http://openavproductions.com/luppp/"; # https does not work
description = "Music creation tool, intended for live use";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ prusnak ];
platforms = platforms.linux;
mainProgram = "luppp";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "lurk";
version = "0.3.10";
src = fetchFromGitHub {
owner = "jakwai01";
repo = "lurk";
tag = "v${version}";
hash = "sha256-5riwosaT7QjRFnIFRAcyLul7i1g8OpHyUuuJNOROTF0=";
};
cargoHash = "sha256-CDrqcKNhQYbtDaasyCQ6VPGdIrW34VBKPDpbFeommAc=";
postPatch = ''
substituteInPlace src/lib.rs \
--replace-fail '/usr/bin/ls' 'ls'
'';
meta = {
changelog = "https://github.com/jakwai01/lurk/releases/tag/v${version}";
description = "Simple and pretty alternative to strace";
homepage = "https://github.com/jakwai01/lurk";
license = lib.licenses.agpl3Only;
mainProgram = "lurk";
maintainers = with lib.maintainers; [
figsoda
];
platforms = [
"i686-linux"
"x86_64-linux"
"aarch64-linux"
];
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
fetchFromGitHub,
rustPlatform,
makeWrapper,
fontconfig,
libGL,
libxkbcommon,
openssl,
wayland,
xorg,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "lutgen-studio";
version = "0.3.0";
src = fetchFromGitHub {
owner = "ozwaldorf";
repo = "lutgen-rs";
tag = "lutgen-studio-v${version}";
hash = "sha256-ENhaJTbaAv52YFNjce9Ln/LQvP/Nw2Tk5eMmr8mKwQ0=";
};
cargoHash = "sha256-PEso+fTH1DndRUPULYIDMAqnrfz8W9iVVxZ7W2N/I5U=";
cargoBuildFlags = [
"--bin"
"lutgen-studio"
];
cargoTestFlags = [
"-p"
"lutgen-studio"
];
nativeBuildInputs = [ makeWrapper ];
postInstall =
let
# Include dynamically loaded libraries
LD_LIBRARY_PATH = lib.makeLibraryPath [
fontconfig
libGL
libxkbcommon
openssl
wayland
xorg.libXcursor
xorg.libXrandr
xorg.libXi
xorg.libX11
];
in
''
wrapProgram "$out/bin/lutgen-studio" \
--set LD_LIBRARY_PATH "${LD_LIBRARY_PATH}"
'';
passthru.updateScript = nix-update-script {
extraArgs = [ "--version-regex=^lutgen-studio-v([0-9.]+)$" ];
};
meta = {
description = "Official GUI for Lutgen, the best way to apply popular colorschemes to any image or wallpaper";
homepage = "https://github.com/ozwaldorf/lutgen-rs";
maintainers = with lib.maintainers; [ ozwaldorf ];
mainProgram = "lutgen-studio";
license = lib.licenses.mit;
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
fetchFromGitHub,
rustPlatform,
stdenv,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "lutgen";
version = "1.0.1";
src = fetchFromGitHub {
owner = "ozwaldorf";
repo = "lutgen-rs";
tag = "lutgen-v${version}";
hash = "sha256-ENhaJTbaAv52YFNjce9Ln/LQvP/Nw2Tk5eMmr8mKwQ0=";
};
cargoHash = "sha256-PEso+fTH1DndRUPULYIDMAqnrfz8W9iVVxZ7W2N/I5U=";
nativeBuildInputs = [ installShellFiles ];
cargoBuildFlags = [
"--bin"
"lutgen"
];
cargoTestFlags = [
"-p"
"lutgen-cli"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd lutgen \
--bash <($out/bin/lutgen --bpaf-complete-style-bash) \
--fish <($out/bin/lutgen --bpaf-complete-style-fish) \
--zsh <($out/bin/lutgen --bpaf-complete-style-zsh)
'';
passthru.updateScript = nix-update-script {
extraArgs = [ "--version-regex=^lutgen-v([0-9.]+)$" ];
};
meta = with lib; {
description = "Blazingly fast interpolated LUT generator and applicator for arbitrary and popular color palettes";
homepage = "https://github.com/ozwaldorf/lutgen-rs";
maintainers = with maintainers; [
ozwaldorf
zzzsy
donovanglover
];
mainProgram = "lutgen";
license = licenses.mit;
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchFromGitHub,
atf,
autoreconfHook,
kyua,
lua,
pkg-config,
gitUpdater,
}:
lib.fix (
drv:
let
# Avoid infinite recursions:
# - Lutok depends on ATF and Kyua for testing; but
# - ATF depends on Kyua for testing, and Kyua depends on Lutok as a build input.
# To break the cycle (ATF -> Kyua -> Lutok -> ATF and Kyua):
# - Build ATF without testing (avoiding the Kyua dependency); and
# - Build Kyua against a version of Lutok without testing (also avoiding the ATF and Kyua dependencies).
atf' = atf.overrideAttrs (_: {
doInstallCheck = false;
});
kyua' =
(kyua.override {
lutok = drv.overrideAttrs (_: {
doCheck = false;
});
}).overrideAttrs
(_: {
# Assume Kyuas install check phase will run when Kyua is built. Dont run it again
# while building Lutok because it can take four to five minutes to run.
doInstallCheck = false;
});
in
stdenv.mkDerivation (finalAttrs: {
pname = "lutok";
version = "0.4";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "freebsd";
repo = "lutok";
rev = "lutok-${finalAttrs.version}";
hash = "sha256-awAFxx9q8dZ6JO1/mShjhJnOPTLn1wCT4VrB4rlgWyg=";
};
strictDeps = true;
propagatedBuildInputs = [ lua ];
nativeBuildInputs = [
atf'
autoreconfHook
pkg-config
];
enableParallelBuilding = true;
makeFlags = [
# Lutok isnt compatible with C++17, which is the default on current clang and GCC.
"CXXFLAGS=-std=c++11"
];
doCheck = true;
checkInputs = [ atf' ];
nativeCheckInputs = [ kyua' ];
passthru.updateScript = gitUpdater { rev-prefix = "lutok-"; };
__structuredAttrs = true;
meta = {
description = "Lightweight C++ API for Lua";
homepage = "https://github.com/freebsd/lutok/";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ reckenrode ];
platforms = lib.platforms.unix;
};
})
)

2210
pkgs/by-name/lu/luwen/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
{
lib,
rustPlatform,
fetchFromGitHub,
protobuf,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "luwen";
version = "0.7.13";
src = fetchFromGitHub {
owner = "tenstorrent";
repo = "luwen";
tag = "v${finalAttrs.version}";
hash = "sha256-2l+rcWP9Ms0bvvSvZIA4DjH6bIloQGxzRTE1ShP6hEE=";
};
postUnpack = ''
cp ${./Cargo.lock} $sourceRoot/Cargo.lock
'';
nativeBuildInputs = [
protobuf
];
# Vendor a lockfile until upstream manages to consistently have checksums in their's.
cargoLock.lockFile = ./Cargo.lock;
meta = {
description = "Tenstorrent system interface tools";
homepage = "https://github.com/tenstorrent/luwen";
maintainers = with lib.maintainers; [ RossComputerGuy ];
license = with lib.licenses; [ asl20 ];
};
})

View File

@@ -0,0 +1,96 @@
{
fetchFromGitHub,
gnupg,
gpgme,
installShellFiles,
lib,
libgit2,
libgpg-error,
lua5_4,
makeWrapper,
nix,
openssl,
perl,
pkg-config,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lux-cli";
version = "0.18.1";
src = fetchFromGitHub {
owner = "lumen-oss";
repo = "lux";
tag = "v${finalAttrs.version}";
hash = "sha256-1wnK+WyKS3DioYImOkFKoMntEicULne2+cvD2PVIbz8=";
};
buildAndTestSubdir = "lux-cli";
cargoHash = "sha256-Hax+j4f+EfYCTp9VE4qGUdptp2GEy4q0rG1v2LIiPzo=";
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
versionCheckProgramArg = "--version";
doInstallCheck = true;
nativeBuildInputs = [
installShellFiles
makeWrapper
perl
pkg-config
];
buildInputs = [
gnupg
gpgme
libgit2
libgpg-error
lua5_4
openssl
];
env = {
LIBGIT2_NO_VENDOR = 1;
LIBSSH2_SYS_USE_PKG_CONFIG = 1;
LUX_SKIP_IMPURE_TESTS = 1; # Disable impure unit tests
};
cargoTestFlags = "--lib"; # Disable impure integration tests
nativeCheckInputs = [
lua5_4
nix
];
postBuild = ''
cargo xtask dist-man
cargo xtask dist-completions
'';
postInstall = ''
installManPage target/dist/lx.1
installShellCompletion target/dist/lx.{bash,fish} --zsh target/dist/_lx
'';
meta = {
description = "Luxurious package manager for Lua";
longDescription = ''
A modern package manager for Lua.
compatible with luarocks.org and the Rockspec specification,
with first-class support for Nix and Neovim.
'';
homepage = "https://lux.lumen-labs.org/";
changelog = "https://github.com/lumen-oss/lux/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.lgpl3Plus;
maintainers = with lib.maintainers; [
mrcjkb
];
platforms = lib.platforms.all;
mainProgram = "lx";
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
ffmpeg,
}:
buildGoModule rec {
pname = "lux";
version = "0.24.1";
src = fetchFromGitHub {
owner = "iawia002";
repo = "lux";
rev = "v${version}";
hash = "sha256-3d8EQ7GzufZvMfjHbVMdpuGE+vPdSir4diSnB29v0sw=";
};
nativeBuildInputs = [ makeWrapper ];
vendorHash = "sha256-RCZzcycUKqJgwBZZQBD1UEZCZCitpiqNpD51oKm6IvI=";
ldflags = [
"-s"
"-w"
"-X github.com/iawia002/lux/app.version=v${version}"
];
postInstall = ''
wrapProgram $out/bin/lux \
--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}
'';
doCheck = false; # require network
meta = {
description = "Fast and simple video download library and CLI tool written in Go";
homepage = "https://github.com/iawia002/lux";
changelog = "https://github.com/iawia002/lux/releases/tag/v${version}";
license = lib.licenses.mit;
mainProgram = "lux";
};
}