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,64 @@
{
lib,
buildGoModule,
fetchFromGitHub,
go,
nix-update-script,
nixosTests,
testers,
thanos,
}:
buildGoModule rec {
pname = "thanos";
version = "0.39.2";
src = fetchFromGitHub {
owner = "thanos-io";
repo = "thanos";
tag = "v${version}";
hash = "sha256-yKw+HGlqEgQmydZ+PIk5y/z5H57nZ0dtw/kEh8079Ws=";
};
vendorHash = "sha256-6qTxCAD1hbS77erG1Z52JU2iOXAU+qtY3yivX+4bjlw=";
subPackages = "cmd/thanos";
ldflags =
let
t = "github.com/prometheus/common/version";
in
[
"-X ${t}.Version=${version}"
"-X ${t}.Revision=unknown"
"-X ${t}.Branch=unknown"
"-X ${t}.BuildUser=nix@nixpkgs"
"-X ${t}.BuildDate=unknown"
"-X ${t}.GoVersion=${lib.getVersion go}"
];
doCheck = true;
passthru = {
updateScript = nix-update-script { };
tests = {
inherit (nixosTests) thanos;
version = testers.testVersion {
command = "thanos --version";
package = thanos;
};
};
};
meta = {
description = "Highly available Prometheus setup with long term storage capabilities";
homepage = "https://github.com/thanos-io/thanos";
changelog = "https://github.com/thanos-io/thanos/releases/tag/v${version}";
license = lib.licenses.asl20;
mainProgram = "thanos";
maintainers = with lib.maintainers; [
basvandijk
anthonyroussel
];
};
}

View File

@@ -0,0 +1,81 @@
{
stdenv,
lib,
fetchFromGitHub,
zlib,
openssl,
ncurses,
libidn,
pcre2,
libssh,
libmysqlclient,
libpq,
samba,
withGUI ? false,
makeWrapper,
pkg-config,
gtk2,
}:
stdenv.mkDerivation rec {
pname = "thc-hydra";
version = "9.6";
src = fetchFromGitHub {
owner = "vanhauser-thc";
repo = "thc-hydra";
rev = "v${version}";
sha256 = "sha256-DS3Fh4a6OtqZRHubgJewB7qnJXm10sYv85R6o/NePoU=";
};
postPatch =
let
makeDirs =
output: subDir:
lib.concatStringsSep " " (map (path: lib.getOutput output path + "/" + subDir) buildInputs);
in
''
substituteInPlace configure \
--replace-fail '$LIBDIRS' "${makeDirs "lib" "lib"}" \
--replace-fail '$INCDIRS' "${makeDirs "dev" "include"}" \
--replace-fail "/usr/include/math.h" "${lib.getDev stdenv.cc.libc}/include/math.h" \
--replace-fail "libcurses.so" "libncurses.so" \
--replace-fail "-lcurses" "-lncurses"
'';
nativeBuildInputs = lib.optionals withGUI [
pkg-config
makeWrapper
];
buildInputs = [
zlib
openssl
ncurses
libidn
pcre2
libssh
libmysqlclient
libpq
samba
]
++ lib.optional withGUI gtk2;
enableParallelBuilding = true;
DATADIR = "/share/${pname}";
postInstall = lib.optionalString withGUI ''
wrapProgram $out/bin/xhydra \
--add-flags --hydra-path --add-flags "$out/bin/hydra"
'';
meta = {
description = "Very fast network logon cracker which support many different services";
homepage = "https://github.com/vanhauser-thc/thc-hydra"; # https://www.thc.org/
changelog = "https://github.com/vanhauser-thc/thc-hydra/raw/v${version}/CHANGES";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ offline ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
libpcap,
openssl,
libnetfilter_queue,
libnfnetlink,
}:
stdenv.mkDerivation rec {
pname = "thc-ipv6";
version = "3.8";
src = fetchFromGitHub {
owner = "vanhauser-thc";
repo = "thc-ipv6";
rev = "v${version}";
sha256 = "07kwika1zdq62s5p5z94xznm77dxjxdg8k0hrg7wygz50151nzmx";
};
buildInputs = [
libpcap
openssl
libnetfilter_queue
libnfnetlink
];
makeFlags = [
"PREFIX=$(out)"
];
meta = with lib; {
description = "IPv6 attack toolkit";
homepage = "https://github.com/vanhauser-thc/thc-ipv6";
maintainers = with maintainers; [ ajs124 ];
platforms = platforms.linux;
license = licenses.agpl3Only;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "thc-secure-delete";
version = "3.1.1";
src = fetchFromGitHub {
owner = "gordrs";
repo = "thc-secure-delete";
rev = "v${finalAttrs.version}";
hash = "sha256-hvWuxFkzhOSCplPtyjRtn36bIk6KdPBcpr3lAmiAyfE=";
};
nativeBuildInputs = [
pkg-config
installShellFiles
];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
installPhase = ''
runHook preInstall
install -Dt $out/bin/ -m755 srm sdmem sswap sfill
installManPage *.1
runHook postInstall
'';
meta = with lib; {
description = "THC's Secure Delete tools";
homepage = "https://github.com/gordrs/thc-secure-delete";
changelog = "https://github.com/gordrs/thc-secure-delete/blob/v${finalAttrs.version}/CHANGES";
license = licenses.gpl2Only;
maintainers = with maintainers; [ tochiaha ];
mainProgram = "srm";
platforms = platforms.all;
};
})

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
bash,
subversion,
zenity,
}:
stdenv.mkDerivation {
pname = "thcrap-proton";
version = "0-unstable-2024-04-03";
src = fetchFromGitHub {
owner = "tactikauan";
repo = "thcrap-steam-proton-wrapper";
rev = "2b636c3f5f1ce1b9b41f731aa9397aa68d2ce66b";
hash = "sha256-J2O8F75NMdsxSaNVr8zLf+vLEJE6CHqWQIIscuuJZ3o=";
};
buildInputs = [ subversion ];
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp thcrap_proton $out/bin/thcrap_proton
runHook postInstall
'';
postFixup = ''
wrapProgram $out/bin/thcrap_proton \
--prefix PATH : ${
lib.makeBinPath [
bash
subversion
zenity
]
}
'';
meta = {
description = "Wrapper script for launching the official Touhou games on Steam with patches through Proton on GNU/Linux";
homepage = "https://github.com/tactikauan/thcrap-steam-proton-wrapper";
license = lib.licenses.unlicense;
maintainers = with lib.maintainers; [ ashuramaruzxc ];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
mainProgram = "thcrap_proton";
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitea,
cmake,
pkg-config,
curl,
libunistring,
openssl,
pcre,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "the-foundation";
version = "1.10.1";
src = fetchFromGitea {
domain = "git.skyjake.fi";
owner = "skyjake";
repo = "the_Foundation";
rev = "v${finalAttrs.version}";
hash = "sha256-EGltSimFdgojbXt97TbH7+a3iwuuI/jj14u9fkw4NnA=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
curl
libunistring
openssl
pcre
zlib
];
cmakeFlags = [
(lib.cmakeFeature "UNISTRING_DIR" "${libunistring}")
];
env.NIX_CFLAGS_COMPILE = "-Wno-error=attribute-warning";
postFixup = ''
substituteInPlace "$out"/lib/pkgconfig/the_Foundation.pc \
--replace '="''${prefix}//' '="/'
'';
meta = {
description = "Opinionated C11 library for low-level functionality";
homepage = "https://git.skyjake.fi/skyjake/the_Foundation";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ sikmir ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,99 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
buildPackages,
SDL2,
SDL2_image,
SDL2_mixer,
SDL2_ttf,
gettext,
libpng,
pkg-config,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "the-legend-of-edgar";
version = "1.37";
src = fetchFromGitHub {
owner = "riksweeney";
repo = "edgar";
rev = finalAttrs.version;
hash = "sha256-hhzDNnoQCwHOwknABTz4a9AQ7MkU9vayi2tZvJtK1PQ=";
};
patches = [
# Fix _FORTIFY_SOURCE startup crash:
# https://github.com/riksweeney/edgar/pull/67
(fetchpatch {
url = "https://github.com/riksweeney/edgar/commit/cec80a04d765fd2f6563d1cf060ad5000f9efe0a.patch";
hash = "sha256-RJpIt7M3c989nXkWRTY+dIUGqqttyTTGx8s5u/iTWX4=";
})
(fetchpatch {
# https://github.com/riksweeney/edgar/pull/68
name = "add-cross-compilation-support.patch";
url = "https://github.com/riksweeney/edgar/commit/9cc071d06b97e20aee3841c2eaa8078c6ed396d7.patch";
hash = "sha256-+yHzLgqBI8qgD40pSCmwF68SDDnC/4QdCXEz/g7l0a4=";
})
];
strictDeps = true;
depsBuildBuild = [
buildPackages.stdenv.cc
pkg-config
];
nativeBuildInputs = [
pkg-config
gettext
zlib
];
buildInputs = [
SDL2
SDL2_image
SDL2_mixer
SDL2_ttf
libpng
zlib
];
dontConfigure = true;
makefile = "makefile";
makeFlags = [
"PREFIX=${placeholder "out"}"
"BIN_DIR=${placeholder "out"}/bin/"
"BUILD_CC=$(CC_FOR_BUILD)"
"BUILD_PKG_CONFIG=$(PKG_CONFIG_FOR_BUILD)"
];
enableParallelBuilding = true;
meta = {
homepage = "https://www.parallelrealities.co.uk/games/edgar";
description = "2D platform game with a persistent world";
longDescription = ''
When Edgar's father fails to return home after venturing out one dark and
stormy night, Edgar fears the worst: he has been captured by the evil
sorcerer who lives in a fortress beyond the forbidden swamp.
Donning his armour, Edgar sets off to rescue him, but his quest will not
be easy...
The Legend of Edgar is a platform game, not unlike those found on the
Amiga and SNES. Edgar must battle his way across the world, solving
puzzles and defeating powerful enemies to achieve his quest.
'';
license = lib.licenses.gpl1Plus;
mainProgram = "edgar";
maintainers = [ ];
platforms = lib.platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
fetchzip,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "the-neue-black";
version = "1.007";
src = fetchzip {
url = "https://github.com/theleagueof/the-neue-black/releases/download/${finalAttrs.version}/TheNeueBlack-${finalAttrs.version}.tar.xz";
hash = "sha256-AsB6w1000xdl+pOPDXqqzQhru1T/VD0hIJ4gFec7mU4=";
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/truetype $src/static/TTF/*.ttf
install -D -m444 -t $out/share/fonts/opentype $src/static/OTF/*.otf
runHook postInstall
'';
meta = {
description = "Tré Seals first open-source font, a typeface based on the Chicago Freedom Movement";
longDescription = ''
The open-source release of The Neue Black is in partnership with designer
Tré Seals of Vocal Type Co. The Neue Black is a display sans serif with a
robust character set that has over 25 ligatures and various inktrap
alternates.
'';
homepage = "https://www.theleagueofmoveabletype.com/the-neue-black";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ minijackson ];
};
})

View File

@@ -0,0 +1,78 @@
{
bzip2,
copyDesktopItems,
curl,
fetchFromGitHub,
fftwFloat,
jsoncpp,
lib,
libpng,
libX11,
lua,
luajit,
meson,
ninja,
pkg-config,
python3,
SDL2,
stdenv,
zlib,
}:
stdenv.mkDerivation rec {
pname = "the-powder-toy";
version = "99.3.384";
src = fetchFromGitHub {
owner = "The-Powder-Toy";
repo = "The-Powder-Toy";
tag = "v${version}";
hash = "sha256-vlswHNkjyxM9sZT+mwiCMfNbdAbhYyx06w+ZLfaPaEQ=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
]
++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems;
buildInputs = [
bzip2
curl
fftwFloat
jsoncpp
libpng
libX11
lua
luajit
SDL2
zlib
];
mesonFlags = [ "-Dworkaround_elusive_bzip2=false" ];
installPhase = ''
runHook preInstall
install -Dm 755 powder $out/bin/powder
mkdir -p $out/share
mv ../resources $out/share
runHook postInstall
'';
desktopItems = [ "resources/powder.desktop" ];
meta = with lib; {
description = "Free 2D physics sandbox game";
homepage = "https://powdertoy.co.uk/";
platforms = platforms.unix;
license = licenses.gpl3Plus;
maintainers = with maintainers; [
siraben
];
mainProgram = "powder";
};
}

View File

@@ -0,0 +1,5 @@
{
"version": "4.3.9",
"url": "https://dl.devmate.com/com.macpaw.site.theunarchiver/147/1742287964/TheUnarchiver-147.zip",
"hash": "sha256-0NjdLgKFGezl7rDwGLM5L2fhyFBTRyzLuu5k6H8XOig="
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenvNoCC,
fetchurl,
unzip,
}:
let
info = lib.importJSON ./info.json;
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "the-unarchiver";
inherit (info) version;
src = fetchurl { inherit (info) url hash; };
sourceRoot = ".";
nativeBuildInputs = [ unzip ];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
mv "The Unarchiver.app" $out/Applications
runHook postInstall
'';
passthru.updateScript = ./update/update.mjs;
meta = {
description = "Unpacks archive files";
homepage = "https://theunarchiver.com/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
platforms = [
"aarch64-darwin"
"x86_64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,9 @@
{
"compilerOptions": {
"allowJs": true,
"checkJs": true,
"module": "NodeNext",
"noEmit": true,
"strict": true
}
}

View File

@@ -0,0 +1,103 @@
#!/usr/bin/env nix-shell
/*
#!nix-shell -i node --pure --packages cacert nodejs yq-go nix
*/
import * as assert from "node:assert/strict";
import * as child_process from "node:child_process";
import * as fsPromises from "node:fs/promises";
import * as path from "node:path";
const __dirname = import.meta.dirname;
/** @typedef {{
rss: {
channel: {
item: Array<{
pubDate: string;
enclosure: {
"+@url": string;
"+@length": string;
"+@type": string;
"+@sparkle:version": string;
"+@sparkle:shortVersionString": string;
};
}>
}
}
}} UpdatesXmlInfo */
/** @typedef {{
version: string;
url: string;
hash: string;
}} Info */
const UPDATE_URL =
"https://updateinfo.devmate.com/com.macpaw.site.theunarchiver/updates.xml";
async function main() {
const filePath = path.join(__dirname, "../info.json");
/** @type {Info} */
const oldInfo = JSON.parse(
await fsPromises.readFile(filePath, { encoding: "utf-8" })
);
const response = await fetch(UPDATE_URL);
assert.ok(response.ok, `Failed to fetch ${UPDATE_URL}`);
/** @type {UpdatesXmlInfo} */
const updatesXmlInfo = JSON.parse(
child_process
.execSync(`yq eval --input-format=xml --output-format=json`, {
input: Buffer.from(await response.arrayBuffer()),
})
.toString()
);
const items = updatesXmlInfo?.rss?.channel?.item;
assert.ok(Array.isArray(items), "items is required");
const item = items.sort(
(a, b) => new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime()
)[0];
const {
"+@url": url,
"+@sparkle:shortVersionString": version,
"+@length": fileSize,
} = item.enclosure;
assert.ok(url, "url is required");
assert.ok(version, "version is required");
assert.ok(fileSize, "fileSize is required");
if (oldInfo.url === url && oldInfo.version === version) {
console.log("[update] No updates found");
return;
}
const [prefetchHash, prefetchStorePath] = child_process
.execSync(`nix-prefetch-url --print-path ${url}`)
.toString()
.split("\n");
const downloadedFileSize = (await fsPromises.stat(prefetchStorePath)).size;
if (Number(fileSize) !== downloadedFileSize) {
console.error(
`File size mismatch: expected ${fileSize}, got ${downloadedFileSize}`
);
process.exit(1);
}
const hash = child_process
.execSync(`nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri ${prefetchHash}`)
.toString()
.trim();
/** @type {Info} */
const info = {
version,
url,
hash,
};
console.log(`[update] Updating Notion ${oldInfo.version} -> ${info.version}`);
await fsPromises.writeFile(filePath, JSON.stringify(info, null, 2) + "\n", {
encoding: "utf-8",
});
console.log("[update] Updating Notion complete");
}
main();

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "the-way";
version = "0.20.3";
src = fetchFromGitHub {
owner = "out-of-cheese-error";
repo = "the-way";
tag = "v${version}";
hash = "sha256-zsfk5APxbnssMKud9xGc70N+57LSc+vk6sSb2XzFUyA=";
};
cargoHash = "sha256-GBr0z2iJuk86xkgZd2sAz+ISTRfESDt99g6ssxXhzhI=";
nativeBuildInputs = [ installShellFiles ];
doCheck = !stdenv.hostPlatform.isDarwin;
useNextest = true;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
$out/bin/the-way config default tmp.toml
for shell in bash fish zsh; do
THE_WAY_CONFIG=tmp.toml $out/bin/the-way complete $shell > the-way.$shell
installShellCompletion the-way.$shell
done
'';
meta = {
description = "Terminal code snippets manager";
mainProgram = "the-way";
homepage = "https://github.com/out-of-cheese-error/the-way";
changelog = "https://github.com/out-of-cheese-error/the-way/blob/v${version}/CHANGELOG.md";
license = with lib.licenses; [ mit ];
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
figsoda
numkem
];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "theano";
version = "2.0";
src = fetchzip {
url = "https://github.com/akryukov/theano/releases/download/v${version}/theano-${version}.otf.zip";
stripRoot = false;
hash = "sha256-9wnwHcRHB+AToOvGwZSXvHkQ8hqMd7Sdl26Ty/IwbPw=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/opentype
mkdir -p $out/share/doc/${pname}-${version}
cp *.otf $out/share/fonts/opentype
cp *.txt $out/share/doc/${pname}-${version}
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/akryukov/theano";
description = "Old-style font designed from historic samples";
maintainers = with maintainers; [
raskin
rycee
];
license = licenses.ofl;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "theattyr";
version = "0.1.10";
src = fetchFromGitHub {
owner = "orhun";
repo = "theattyr";
tag = "v${version}";
hash = "sha256-gqgoG5JwGecm8MEqH36BvJyLuh6nDao1d9ydX1AlbgU=";
};
cargoHash = "sha256-44pHUqHBr0286Kc/yreb15mQXnFuyh12D2uCU2MrrTk=";
passthru.updateScript = nix-update-script { };
meta = {
description = "Terminal theater for playing VT100 art and animations";
homepage = "https://github.com/orhun/theattyr";
changelog = "https://github.com/orhun/theattyr/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ a-kenji ];
mainProgram = "theattyr";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
dpkg,
autoPatchelfHook,
makeWrapper,
electron,
alsa-lib,
gtk3,
libxshmfence,
libgbm,
nss,
}:
stdenv.mkDerivation rec {
pname = "thedesk";
version = "24.2.1";
src = fetchurl {
url = "https://github.com/cutls/TheDesk/releases/download/v${version}/${pname}_${version}_amd64.deb";
sha256 = "sha256-AdjygNnQ3qQB03cGcQ5EB0cY3XXWLrzfCqw/U8tq1Yo=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
makeWrapper
];
buildInputs = [
alsa-lib
gtk3
libxshmfence
libgbm
nss
];
dontBuild = true;
dontConfigure = true;
installPhase = ''
runHook preInstall
mv usr $out
mv opt $out
# binary is not used and probably vulnerable to CVE(s)
rm $out/opt/TheDesk/thedesk
substituteInPlace $out/share/applications/thedesk.desktop \
--replace '/opt/TheDesk' $out/bin
makeWrapper ${electron}/bin/electron $out/bin/thedesk \
--add-flags $out/opt/TheDesk/resources/app.asar
runHook postInstall
'';
meta = with lib; {
description = "Mastodon/Misskey Client for PC";
homepage = "https://thedesk.top";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.gpl3Only;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
mainProgram = "thedesk";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
SDL2,
SDL2_image,
libX11,
rtaudio,
rtmidi,
glew,
alsa-lib,
angelscript,
cmake,
pkg-config,
zenity,
withEditor ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "theforceengine";
version = "1.22.420";
src = fetchFromGitHub {
owner = "luciusDXL";
repo = "TheForceEngine";
tag = "v${finalAttrs.version}";
hash = "sha256-8JhaCIJgyaikoDLesshKiIhOO6OFis0xBYDq4vio4F4=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
SDL2
SDL2_image
libX11
rtaudio
rtmidi
glew
alsa-lib
angelscript
zenity
];
hardeningDisable = [ "format" ];
cmakeFlags = [
(lib.cmakeBool "ENABLE_EDITOR" withEditor)
];
prePatch = ''
# use nix store path instead of hardcoded /usr/share for support data
substituteInPlace TheForceEngine/TFE_FileSystem/paths-posix.cpp \
--replace-fail "/usr/share" "$out/share"
# use zenity from nix store
substituteInPlace TheForceEngine/TFE_Ui/portable-file-dialogs.h \
--replace-fail "check_program(\"zenity\")" "check_program(\"${lib.getExe zenity}\")" \
--replace-fail "flags(flag::has_zenity) ? \"zenity\"" "flags(flag::has_zenity) ? \"${lib.getExe zenity}\""
'';
meta = {
description = "Modern \"Jedi Engine\" replacement supporting Dark Forces, mods, and in the future, Outlaws";
mainProgram = "theforceengine";
homepage = "https://theforceengine.github.io";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ devusb ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
version = "0.4.5";
pname = "theft";
src = fetchFromGitHub {
owner = "silentbicycle";
repo = "theft";
rev = "v${version}";
sha256 = "1n2mkawfl2bpd4pwy3mdzxwlqjjvb5bdrr2x2gldlyqdwbk7qjhd";
};
postPatch = ''
substituteInPlace Makefile \
--replace "ar -rcs" "${stdenv.cc.targetPrefix}ar -rcs"
'';
preConfigure = "patchShebangs ./scripts/mk_bits_lut";
doCheck = true;
checkTarget = "test";
installFlags = [ "PREFIX=$(out)" ];
# fix the libtheft.pc file to use the right installation
# directory. should be fixed upstream, too
postInstall = ''
install -m644 vendor/greatest.h $out/include/
substituteInPlace $out/lib/pkgconfig/libtheft.pc \
--replace "/usr/local" "$out"
'';
meta = with lib; {
description = "C library for property-based testing";
homepage = "https://github.com/silentbicycle/theft/";
platforms = platforms.unix;
license = licenses.isc;
maintainers = with maintainers; [
kquick
thoughtpolice
];
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "theharvester";
version = "4.8.2";
pyproject = true;
src = fetchFromGitHub {
owner = "laramies";
repo = "theharvester";
tag = version;
hash = "sha256-Sui9PKpp+iMxCUbFcZE2OVDiBCxXLwR9iuXFIbd0P0k=";
};
pythonRelaxDeps = true;
pythonRemoveDeps = [ "winloop" ];
build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
aiodns
aiofiles
aiohttp
aiomultiprocess
aiosqlite
beautifulsoup4
censys
certifi
dnspython
fastapi
lxml
netaddr
ujson
playwright
plotly
pyppeteer
python-dateutil
pyyaml
requests
retrying
shodan
slowapi
starlette
uvicorn
uvloop
];
nativeCheckInputs = with python3.pkgs; [
pytest
pytest-asyncio
];
# We don't run other tests (discovery modules) because they require network access
checkPhase = ''
runHook preCheck
pytest tests/test_myparser.py
runHook postCheck
'';
meta = {
description = "Gather E-mails, subdomains and names from different public sources";
longDescription = ''
theHarvester is a very simple, yet effective tool designed to be used in the early
stages of a penetration test. Use it for open source intelligence gathering and
helping to determine an entity's external threat landscape on the internet. The tool
gathers emails, names, subdomains, IPs, and URLs using multiple public data sources.
'';
homepage = "https://github.com/laramies/theHarvester";
changelog = "https://github.com/laramies/theHarvester/releases/tag/${version}";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [
c0bw3b
fab
treemo
];
mainProgram = "theHarvester";
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
nodejs,
yarn,
fixup-yarn-lock,
python3,
npmHooks,
cctools,
sqlite,
srcOnly,
buildPackages,
nixosTests,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "thelounge";
version = "4.4.3";
src = fetchFromGitHub {
owner = "thelounge";
repo = "thelounge";
rev = "v${finalAttrs.version}";
hash = "sha256-lDbyqVFjhF2etRx31ax7KiQ1QKgVhD8xkTog/E3pUlA=";
};
# Allow setting package path for the NixOS module.
patches = [ ./packages-path.patch ];
# Use the NixOS module's state directory by default.
postPatch = ''
echo /var/lib/thelounge > .thelounge_home
'';
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-csVrgsEy9HjSBXxtgNG0hcBrR9COlcadhMQrw6BWPc4=";
};
nativeBuildInputs = [
nodejs
yarn
fixup-yarn-lock
python3
python3.pkgs.distutils
npmHooks.npmInstallHook
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ cctools ];
buildInputs = [ sqlite ];
configurePhase = ''
runHook preConfigure
export HOME="$PWD"
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror ${finalAttrs.offlineCache}
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
NODE_ENV=production yarn build
runHook postBuild
'';
# `npm prune` doesn't work and/or hangs for whatever reason.
preInstall = ''
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive --production
patchShebangs node_modules
# Build the sqlite3 package.
npm_config_nodedir="${srcOnly nodejs}" npm_config_node_gyp="${buildPackages.nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" npm rebuild --verbose --sqlite=${sqlite.dev}
# These files seemingly aren't needed, and also might not exist when the Darwin sandbox is disabled?
rm -rf node_modules/sqlite3/build-tmp-napi-v6/{Release/obj.target,node_sqlite3.target.mk}
'';
dontNpmPrune = true;
# Takes way, way, way too long.
dontStrip = true;
passthru.tests = nixosTests.thelounge;
meta = with lib; {
description = "Modern, responsive, cross-platform, self-hosted web IRC client";
homepage = "https://thelounge.chat";
changelog = "https://github.com/thelounge/thelounge/releases/tag/v${finalAttrs.version}";
maintainers = with maintainers; [
winter
raitobezarius
];
license = licenses.mit;
inherit (nodejs.meta) platforms;
mainProgram = "thelounge";
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/server/config.ts b/server/config.ts
index 543a8135..9744f00d 100644
--- a/server/config.ts
+++ b/server/config.ts
@@ -145,7 +145,7 @@ class Config {
}
getPackagesPath() {
- return path.join(this.#homePath, "packages");
+ return process.env.THELOUNGE_PACKAGES || path.join(this.#homePath, "packages");
}
getPackageModulePath(packageName: string) {

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchurl,
gtk-engine-murrine,
}:
stdenv.mkDerivation rec {
pname = "theme-jade1";
version = "1.15";
src = fetchurl {
url = "https://github.com/madmaxms/theme-jade-1/releases/download/v${version}/jade-1-theme.tar.xz";
sha256 = "sha256-VfV3dVpA3P0ChRjpxuh6C9loxr5t3s1xK0BP3DOCeQ4=";
};
sourceRoot = ".";
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
installPhase = ''
runHook preInstall
mkdir -p $out/share/themes
cp -a Jade* $out/share/themes
runHook postInstall
'';
meta = with lib; {
description = "Based on Linux Mint theme with dark menus and more intensive green";
homepage = "https://github.com/madmaxms/theme-jade-1";
license = with licenses; [ gpl3Only ];
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenvNoCC,
fetchurl,
gtk-engine-murrine,
jdupes,
gitUpdater,
}:
stdenvNoCC.mkDerivation rec {
pname = "theme-obsidian2";
version = "2.24";
src = fetchurl {
url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
sha256 = "sha256-P+62cdYiCk8419S+u1w6EmzJL0rgHAh7G5eTuBOrAGY=";
};
sourceRoot = ".";
nativeBuildInputs = [
jdupes
];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
installPhase = ''
runHook preInstall
mkdir -p $out/share/themes
cp -a Obsidian-2* $out/share/themes
jdupes --quiet --link-soft --recurse $out/share
runHook postInstall
'';
passthru.updateScript = gitUpdater {
url = "https://github.com/madmaxms/theme-obsidian-2";
rev-prefix = "v";
};
meta = with lib; {
description = "Gnome theme based upon Adwaita-Maia dark skin";
homepage = "https://github.com/madmaxms/theme-obsidian-2";
license = with licenses; [ gpl3Only ];
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
coreutils,
gawk,
}:
stdenv.mkDerivation rec {
pname = "theme-sh";
version = "1.1.5";
src = fetchFromGitHub {
owner = "lemnos";
repo = "theme.sh";
rev = "v${version}";
sha256 = "sha256-zDw8WGBzO4/HRCgN7yoUxT49ibTz+QkRa5WpBQbl1nI=";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 bin/theme.sh $out/bin
wrapProgram $out/bin/theme.sh \
--prefix PATH : ${
lib.makeBinPath [
coreutils
gawk
]
}
runHook postInstall
'';
meta = with lib; {
description = "Script which lets you set your $terminal theme";
homepage = "https://github.com/lemnos/theme.sh";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [ figsoda ];
mainProgram = "theme.sh";
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
gtk-engine-murrine,
}:
stdenv.mkDerivation rec {
pname = "theme-vertex";
version = "20170128";
src = fetchFromGitHub {
owner = "horst3180";
repo = "vertex-theme";
rev = version;
sha256 = "0c9mhrs95ahz37djrv176vn41ywvj26ilwmnr1h9171giv6hid98";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
configureFlags = [ "--disable-unity" ];
postInstall = ''
mkdir -p $out/share/plank/themes
cp -r extra/*-Plank $out/share/plank/themes
mkdir -p $out/share/doc/$pname/Chrome
cp -r extra/Chrome/*.crx $out/share/doc/$pname/Chrome
cp -r extra/Firefox $out/share/doc/$pname
cp AUTHORS README.md $out/share/doc/$pname/
'';
meta = with lib; {
inherit (src.meta) homepage;
description = "Theme for GTK 3, GTK 2, Gnome-Shell, and Cinnamon";
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ romildo ];
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
gobject-introspection,
meson,
ninja,
pkg-config,
wrapGAppsHook3,
cinnamon-gsettings-overrides,
desktop-file-utils,
glib,
gnome,
gtk3,
mate,
python3,
gsettings-desktop-schemas,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "themechanger";
version = "0.12.1";
format = "other";
src = fetchFromGitHub {
owner = "ALEX11BR";
repo = "ThemeChanger";
rev = "v${version}";
hash = "sha256-+uTofigS1F/nBNs/OyJ+RSz10DNnqgvNjWpkTXAvARM=";
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook3
desktop-file-utils
gtk3
];
buildInputs = [
cinnamon-gsettings-overrides
glib
gnome.nixos-gsettings-overrides
gtk3
mate.mate-desktop
mate.mate-settings-daemon
python3
gsettings-desktop-schemas
];
propagatedBuildInputs = with python3Packages; [
pygobject3
];
postPatch = ''
patchShebangs postinstall.py
'';
meta = with lib; {
homepage = "https://github.com/ALEX11BR/ThemeChanger";
description = "Theme changing utility for Linux";
mainProgram = "themechanger";
longDescription = ''
This app is a theme changing utility for Linux, BSDs, and whatnots.
It lets the user change GTK 2/3/4, Kvantum, icon and cursor themes, edit GTK CSS with live preview, and set some related options.
It also lets the user install icon and widget theme archives.
'';
maintainers = with maintainers; [ ALEX11BR ];
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
sassc,
gdk-pixbuf,
glib,
gobject-introspection,
librsvg,
gtk3,
python3,
fetchFromGitHub,
wrapGAppsHook3,
}:
let
py = python3.withPackages (p: [
p.pygobject3
]);
pname = "themix-gui";
version = "1.15.1";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "themix-project";
repo = "themix-gui";
tag = version;
hash = "sha256-xFtwNx1c7Atb+9yorZhs/uVkkoxbZiELJ0SZ88L7KMs=";
fetchSubmodules = true;
};
nativeBuildInputs = [
gobject-introspection
py
sassc
wrapGAppsHook3
];
buildInputs = [
gdk-pixbuf
glib
gtk3
librsvg
py
];
postPatch = ''
substituteInPlace gui.sh packaging/bin/{oomox,themix}-gui --replace python3 ${lib.getExe py}
'';
dontBuild = true;
installPhase = ''
runHook preInstall
make DESTDIR=/ APPDIR=$out/opt/oomox PREFIX=$out install_gui install_import_xresources install_export_xresources
python -O -m compileall $out/opt/oomox/oomox_gui -d /opt/oomox/oomox_gui
runHook postInstall
'';
meta = {
description = "Graphical application for designing themes and exporting them using plugins";
longDescription = ''
Graphical application for generating different color variations of
Oomox (Numix-based) and Materia (ex-Flat-Plat) themes (GTK2, GTK3,
Cinnamon, GNOME, Openbox, Xfwm), Archdroid, Gnome-Color, Numix, Papirus
and Suru++ icon themes. Have a hack for HiDPI in gtk2. Its Base16 plugin
also allowing a lot of app themes support like Alacritty, Emacs, GTK4,
KDE, VIM and many more.
'';
homepage = "https://github.com/themix-project/themix-gui";
license = lib.licenses.gpl3Only;
mainProgram = "themix-gui";
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
autoreconfHook,
boost,
fastjet,
gsl,
hepmc3,
lhapdf,
rivet,
zlib,
}:
stdenv.mkDerivation rec {
pname = "thepeg";
version = "2.3.0";
src = fetchurl {
url = "https://www.hepforge.org/archive/thepeg/ThePEG-${version}.tar.bz2";
hash = "sha256-rDWXmuicKWCMqSwVakn/aKrOeloSoMkvCgGoM9LTRXI=";
};
patches = [
# Rivet 4 support
(fetchpatch {
url = "https://github.com/hep-mirrors/thepeg/commit/d974704fe48876c13cb7f544cabcf6ef30c00f48.diff";
hash = "sha256-HzyNigbhWzSpjvvYw3+LZvnrSoV6Pmzghw/5VY5nlqk=";
})
];
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
boost
fastjet
gsl
hepmc3
lhapdf
rivet
zlib
];
configureFlags = [
"--with-hepmc=${hepmc3}"
"--with-hepmcversion=3"
"--with-rivet=${rivet}"
"--without-javagui"
];
enableParallelBuilding = true;
meta = {
description = "Toolkit for High Energy Physics Event Generation";
homepage = "https://herwig.hepforge.org/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ veprbl ];
platforms = lib.platforms.unix;
badPlatforms = [
# ../include/ThePEG/Config/std.h:101:12: error: no member named 'mem_fun' in namespace 'std'; did you mean 'mem_fn'?
lib.systems.inspect.patterns.isDarwin
];
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
perl,
tcl,
tclPackages,
tk,
expat,
python3,
texliveTeTeX,
survex,
makeWrapper,
fmt,
proj,
wxGTK32,
vtk,
freetype,
libjpeg,
gettext,
libGL,
libGLU,
sqlite,
libtiff,
curl,
catch2,
}:
stdenv.mkDerivation rec {
pname = "therion";
version = "6.3.4";
src = fetchFromGitHub {
owner = "therion";
repo = "therion";
tag = "v${version}";
hash = "sha256-kus5MoiUrLadpzq0wPB+J85F0RVva7NAYM6E6HX4eJ8=";
};
nativeBuildInputs = [
cmake
pkg-config
perl
python3
texliveTeTeX
makeWrapper
tcl.tclPackageHook
];
preConfigure = ''
export OUTDIR=$out
'';
cmakeFlags = [
"-DBUILD_THBOOK=OFF"
];
buildInputs = [
expat
tclPackages.tkimg
proj
wxGTK32
vtk
tk
freetype
libjpeg
gettext
libGL
libGLU
sqlite
libtiff
curl
fmt
tcl
tclPackages.tcllib
tclPackages.bwidget
catch2
];
fixupPhase = ''
runHook preFixup
wrapProgram $out/bin/therion \
--prefix PATH : ${
lib.makeBinPath [
survex
texliveTeTeX
]
}
wrapProgram $out/bin/xtherion \
--prefix PATH : ${lib.makeBinPath [ tk ]}
runHook postFixup
'';
meta = {
description = "Cave surveying software";
homepage = "https://therion.speleo.sk/";
changelog = "https://github.com/therion/therion/blob/${src.rev}/CHANGES";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ matthewcroughan ];
};
}

View File

@@ -0,0 +1,81 @@
{
autoconf,
autoconf-archive,
automake,
dbus,
dbus-glib,
docbook_xml_dtd_412,
docbook-xsl-nons,
fetchFromGitHub,
gtk-doc,
libevdev,
libtool,
libxml2,
pkg-config,
lib,
stdenv,
upower,
}:
stdenv.mkDerivation rec {
pname = "thermald";
version = "2.5.10";
outputs = [
"out"
"devdoc"
];
src = fetchFromGitHub {
owner = "intel";
repo = "thermal_daemon";
rev = "v${version}";
sha256 = "sha256-+dk3lOlI8kaf8NvcWQSvTxSqVGPCgvVnTB9nltqQHrU=";
};
nativeBuildInputs = [
autoconf
autoconf-archive
automake
docbook-xsl-nons
docbook_xml_dtd_412
gtk-doc
libtool
pkg-config
];
buildInputs = [
dbus
dbus-glib
libevdev
libxml2
upower
];
configureFlags = [
"--sysconfdir=${placeholder "out"}/etc"
"--localstatedir=/var"
"--enable-gtk-doc"
"--with-dbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d"
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
];
preConfigure = "NO_CONFIGURE=1 ./autogen.sh";
postInstall = ''
cp ./data/thermal-conf.xml $out/etc/thermald/
'';
meta = with lib; {
description = "Thermal Daemon";
homepage = "https://github.com/intel/thermal_daemon";
changelog = "https://github.com/intel/thermal_daemon/blob/master/README.txt";
license = licenses.gpl2Plus;
platforms = [
"x86_64-linux"
"i686-linux"
];
maintainers = [ ];
mainProgram = "thermald";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
crystal,
fetchFromGitHub,
}:
crystal.buildCrystalPackage rec {
pname = "thicket";
version = "0.1.6";
src = fetchFromGitHub {
owner = "taylorthurlow";
repo = "thicket";
rev = "v${version}";
sha256 = "sha256-sF+fNKEZEfjpW3buh6kFUpL1P0yO9g4SrTb0rhx1uNc=";
};
format = "shards";
crystalBinaries.thicket.src = "src/thicket.cr";
# there is one test that tries to clone a repo
doCheck = false;
meta = with lib; {
description = "Better one-line git log";
homepage = "https://github.com/taylorthurlow/thicket";
license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne ];
mainProgram = "thicket";
};
}

View File

@@ -0,0 +1,76 @@
{
lib,
rustPlatform,
pkg-config,
udev,
lvm2,
fetchFromGitHub,
nixosTests,
}:
rustPlatform.buildRustPackage rec {
pname = "thin-provisioning-tools";
version = "1.2.2";
src = fetchFromGitHub {
owner = "jthornber";
repo = "thin-provisioning-tools";
rev = "v${version}";
hash = "sha256-JnibI3txqPXwEemLtgtfe6NAZrOX09p0w4sp9/HEXBQ=";
};
strictDeps = true;
depsBuildBuild = [
pkg-config
lvm2
udev
];
nativeBuildInputs = [
rustPlatform.bindgenHook
];
buildInputs = [
lvm2
udev
];
cargoHash = "sha256-1spipVIT49G0l6yLyv3/7jsR2xyJQPjtB5vouyAjpgA=";
passthru.tests = {
inherit (nixosTests.lvm2) lvm-thinpool-linux-latest;
};
# Uses O_DIRECT, which is not supported on all filesystems.
# https://github.com/jthornber/thin-provisioning-tools/issues/38
doCheck = false;
# required for config compatibility with configs done pre 0.9.0
# see https://github.com/NixOS/nixpkgs/issues/317018
postInstall = ''
ln -s $out/bin/pdata_tools $out/bin/cache_check
ln -s $out/bin/pdata_tools $out/bin/cache_dump
ln -s $out/bin/pdata_tools $out/bin/cache_metadata_size
ln -s $out/bin/pdata_tools $out/bin/cache_repair
ln -s $out/bin/pdata_tools $out/bin/cache_restore
ln -s $out/bin/pdata_tools $out/bin/cache_writeback
ln -s $out/bin/pdata_tools $out/bin/era_check
ln -s $out/bin/pdata_tools $out/bin/era_dump
ln -s $out/bin/pdata_tools $out/bin/era_invalidate
ln -s $out/bin/pdata_tools $out/bin/era_restore
ln -s $out/bin/pdata_tools $out/bin/thin_check
ln -s $out/bin/pdata_tools $out/bin/thin_delta
ln -s $out/bin/pdata_tools $out/bin/thin_dump
ln -s $out/bin/pdata_tools $out/bin/thin_ls
ln -s $out/bin/pdata_tools $out/bin/thin_metadata_size
ln -s $out/bin/pdata_tools $out/bin/thin_repair
ln -s $out/bin/pdata_tools $out/bin/thin_restore
ln -s $out/bin/pdata_tools $out/bin/thin_rmap
ln -s $out/bin/pdata_tools $out/bin/thin_trim
'';
meta = with lib; {
homepage = "https://github.com/jthornber/thin-provisioning-tools/";
description = "Suite of tools for manipulating the metadata of the dm-thin device-mapper target";
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
lm_sensors,
yaml-cpp,
pkg-config,
procps,
smartSupport ? false,
libatasmart,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "thinkfan";
version = "2.0.0";
src = fetchFromGitHub {
owner = "vmatare";
repo = "thinkfan";
tag = finalAttrs.version;
hash = "sha256-QqDWPOXy8E+TY5t0fFRAS8BGA7ZH90xecv5UsFfDssk=";
};
postPatch = # fix hardcoded install path
''
substituteInPlace CMakeLists.txt \
--replace-fail "/etc" "$out/etc"
''
# fix command paths in unit files
+ ''
substituteInPlace rcscripts/systemd/thinkfan-sleep.service \
--replace-fail "/usr/bin/pkill" "${lib.getExe' procps "pkill"}"
substituteInPlace rcscripts/systemd/thinkfan-wakeup.service \
--replace-fail "/usr/bin/pkill" "${lib.getExe' procps "pkill"}"
substituteInPlace rcscripts/systemd/thinkfan.service.cmake \
--replace-fail "/bin/kill" "${lib.getExe' procps "kill"}"
'';
cmakeFlags = [
"-DCMAKE_INSTALL_DOCDIR=share/doc/thinkfan"
"-DUSE_NVML=OFF"
# force install unit files
"-DSYSTEMD_FOUND=ON"
]
++ lib.optional smartSupport "-DUSE_ATASMART=ON";
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
lm_sensors
yaml-cpp
]
++ lib.optional smartSupport libatasmart;
meta = {
description = "Simple, lightweight fan control program";
longDescription = ''
Thinkfan is a minimalist fan control program. Originally designed
specifically for IBM/Lenovo Thinkpads, it now supports any kind of
system via the sysfs hwmon interface (/sys/class/hwmon).
'';
license = lib.licenses.gpl3Plus;
homepage = "https://github.com/vmatare/thinkfan";
maintainers = with lib.maintainers; [
rnhmjoj
];
platforms = lib.platforms.linux;
mainProgram = "thinkfan";
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchurl,
runtimeShell,
}:
stdenv.mkDerivation rec {
pname = "thinkingrock-binary";
version = "2.2.1";
src = fetchurl {
url = "mirror://sourceforge/thinkingrock/ThinkingRock/TR%20${version}/tr-${version}.tar.gz";
sha256 = "0hnwvvyc8miiz8w2g4iy7s4rgfy0kfbncgbgfzpsq6nrzq334kgm";
};
/*
it would be a really bad idea to put thinkingrock tr executable in PATH!
the tr.sh script does use the coreutils tr itself
That's why I've renamed the wrapper and called it thinkingrock
However you may not rename the bin/tr script cause it will notice and throw an
"java.lang.IllegalArgumentException: Malformed branding token: thinkingrock"
exception. I hope that's fine
*/
buildPhase = ''
# only keep /bin/tr
ls -1 bin/* | grep -ve 'bin/tr''$' | xargs rm
# don't keep the other .exe file either
find . -iname "*.exe" | xargs -n1 rm
mkdir -p $out/{nix-support/tr-files,bin}
cp -r . $out/nix-support/tr-files
cat >> $out/bin/thinkingrock << EOF
#!${runtimeShell}
exec $out/nix-support/tr-files/bin/tr "$@"
EOF
chmod +x $out/bin/thinkingrock
'';
dontInstall = true;
meta = with lib; {
description = "Task management system";
mainProgram = "thinkingrock";
homepage = "http://www.thinkingrock.com.au/";
license = licenses.cddl;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "thokr";
version = "0.4.1";
src = fetchFromGitHub {
owner = "thatvegandev";
repo = "thokr";
rev = "v${version}";
sha256 = "0aryfx9qlnjdq3iq2d823c82fhkafvibmbz58g48b8ah5x5fv3ir";
};
cargoHash = "sha256-BjUPXsErdLGmZaDIMaY+iV3XcoQHGNZbRmFJb/fblwU=";
meta = with lib; {
description = "Typing tui with visualized results and historical logging";
homepage = "https://github.com/thatvegandev/thokr";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "thokr";
};
}

View File

@@ -0,0 +1,91 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
makeDesktopItem,
copyDesktopItems,
desktopToDarwinBundle,
}:
python3.pkgs.buildPythonApplication rec {
pname = "thonny";
version = "4.1.7";
pyproject = true;
src = fetchFromGitHub {
owner = "thonny";
repo = "thonny";
tag = "v${version}";
hash = "sha256-RnjnXB5jU13uwRpL/Pn14QY7fRbRkq09Vopc3fv+z+Y=";
};
nativeBuildInputs = [
copyDesktopItems
]
++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
desktopItems = [
(makeDesktopItem {
name = "Thonny";
exec = "thonny";
icon = "thonny";
desktopName = "Thonny";
comment = "Python IDE for beginners";
categories = [
"Development"
"IDE"
];
})
];
build-system = with python3.pkgs; [ setuptools ];
dependencies =
with python3.pkgs;
(
[
jedi
pyserial
tkinter
docutils
pylint
mypy
pyperclip
asttokens
send2trash
]
++ lib.optionals stdenv.hostPlatform.isLinux [
dbus-next
]
);
preFixup = ''
wrapProgram "$out/bin/thonny" \
--prefix PYTHONPATH : $PYTHONPATH:$(toPythonPath ${python3.pkgs.jedi})
'';
postInstall = ''
install -Dm644 ./packaging/icons/thonny-48x48.png $out/share/icons/hicolor/48x48/apps/thonny.png
'';
# Tests need a DISPLAY
doCheck = false;
pythonImportsCheck = [ "thonny" ];
meta = {
description = "Python IDE for beginners";
longDescription = ''
Thonny is a Python IDE for beginners. It supports different ways
of stepping through the code, step-by-step expression
evaluation, detailed visualization of the call stack and a mode
for explaining the concepts of references and heap.
'';
homepage = "https://www.thonny.org/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ leenaars ];
platforms = lib.platforms.unix;
mainProgram = "thonny";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "threatest";
version = "1.2.5";
src = fetchFromGitHub {
owner = "DataDog";
repo = "threatest";
tag = "v${version}";
hash = "sha256-rVRBrf/RTcHvKOLHNASzvij3fV+uQEuIVKb07CZ/cT0=";
};
proxyVendor = true;
vendorHash = "sha256-EvVazz51sW8z+8XfZB0Xo42KuUT6Q9n2Y/0HvlF1bV4=";
nativeBuildInputs = [
installShellFiles
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd threatest \
--bash <($out/bin/threatest completion bash) \
--fish <($out/bin/threatest completion fish) \
--zsh <($out/bin/threatest completion zsh)
'';
meta = {
description = "Framework for end-to-end testing threat detection rules";
mainProgram = "threatest";
homepage = "https://github.com/DataDog/threatest";
changelog = "https://github.com/DataDog/threatest/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,129 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
electron,
python3,
}:
let
version = "1.2.48";
electronSrc = fetchFromGitHub {
owner = "threema-ch";
repo = "threema-web-electron";
rev = "refs/tags/${version}";
hash = "sha256-u1rzKFDrLxU/o7Oc2o/WBwbAncNWKJ9GAUBaNDPViZI=";
};
threema-web = buildNpmPackage rec {
pname = "threema-web";
version = "2.6.2";
src = fetchFromGitHub {
owner = "threema-ch";
repo = "threema-web";
rev = "refs/tags/v${version}";
hash = "sha256-GmyWKJdDgiRS7XxNjCyvt92Bn48kpP3+ZsfRouyUCM0=";
};
npmDepsHash = "sha256-KDkJ2jdtHVK40b0ja/Nj6t5Bcl5frh7rzteWD74AKOM=";
npmBuildScript = "dist";
nativeBuildInputs = [
(python3.withPackages (ps: [ ps.setuptools ])) # Used by gyp
];
patches = [
"${electronSrc}/tools/patches/patch-user-agent.patch"
"${electronSrc}/tools/patches/patch-looks.patch"
];
postInstall = ''
# Content of ${electronSrc}/tools/patches/post-patch-threema-web.sh
export threema_web_version=threema-web-${version}
sed -i.bak -E "s/IN_MEMORY_SESSION_PASSWORD:(true|false|0|1|\!0|\!1)/IN_MEMORY_SESSION_PASSWORD:true/g" -- release/$threema_web_version/*.bundle.js
cp -r . "$out"
'';
};
consumer = buildNpmPackage rec {
pname = "threema-desktop-consumer";
inherit version;
src = electronSrc;
sourceRoot = "${src.name}/app";
npmDepsHash = "sha256-mafB7lC1YpIZ71R6IT3TnSzFDieK4AsAzIqpWcy9480=";
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
dontNpmBuild = true;
prePatch = ''
rm -r dependencies/threema-web
cp -r ${threema-web} dependencies/threema-web
chmod +w dependencies/threema-web
'';
postInstall = ''
cp -r . "$out"
'';
};
in
buildNpmPackage rec {
pname = "threema-desktop";
inherit version;
src = electronSrc;
npmDepsHash = "sha256-A7XvzURCCM0+ISlSLpnreFIxKku4FnVdWLsF2WxQfBY=";
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
postPatch = ''
rm -r app
cp -r ${consumer} app
chmod +w app
'';
npmBuildScript = "app:build:electron:main";
# We need to install the consumer
dontNpmInstall = true;
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
desktopItems = [
(makeDesktopItem {
name = "threema-desktop";
exec = meta.mainProgram;
icon = "threema";
desktopName = "Threema Desktop";
comment = meta.description;
})
];
postInstall = ''
mkdir -p $out/opt
cp -r app $out/opt/threema
for dir in assets dependencies; do
ln -s $out/opt/threema/$dir $out/opt/threema/dist/src/$dir
done
mkdir -p $out/share/pixmaps
cp $out/opt/threema/assets/icons/svg/consumer.svg $out/share/pixmaps/threema.svg
makeWrapper ${electron}/bin/electron $out/bin/threema \
--add-flags $out/opt/threema/dist/src/main.js
'';
meta = with lib; {
description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
homepage = "https://threema.ch";
license = licenses.agpl3Only;
mainProgram = "threema";
maintainers = [ lib.maintainers.jonhermansen ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "thrift-ls";
version = "0.2.9";
src = fetchFromGitHub {
owner = "joyme123";
repo = "thrift-ls";
rev = "v${version}";
hash = "sha256-Gmqm1D+zcXtqFEraHjivqIqFz0AZCJd3pnH4zKE/jxw=";
};
vendorHash = "sha256-SGCJ12BxjFUQ7bnaNY0bvrrtm2qNNrwYKKfNEi1lPco=";
postInstall = ''
mv $out/bin/thrift-ls $out/bin/thriftls
'';
ldflags = [
"-s"
"-w"
];
meta = {
description = "Thrift Language Server";
homepage = "https://github.com/joyme123/thrift-ls";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
callumio
hughmandalidis
];
mainProgram = "thriftls";
};
}

View File

@@ -0,0 +1,12 @@
diff --git i/lib/cpp/test/CMakeLists.txt w/lib/cpp/test/CMakeLists.txt
index 19854e1a3..9d428a166 100644
--- i/lib/cpp/test/CMakeLists.txt
+++ w/lib/cpp/test/CMakeLists.txt
@@ -77,7 +77,6 @@ set(UnitTest_SOURCES
TMemoryBufferTest.cpp
TBufferBaseTest.cpp
Base64Test.cpp
- ToStringTest.cpp
TypedefTest.cpp
TServerSocketTest.cpp
TServerTransportTest.cpp

View File

@@ -0,0 +1,117 @@
{
lib,
stdenv,
fetchFromGitHub,
boost,
zlib,
libevent,
openssl,
python3,
cmake,
pkg-config,
bison,
flex,
ctestCheckHook,
static ? stdenv.hostPlatform.isStatic,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "thrift";
version = "0.22.0";
src = fetchFromGitHub {
owner = "apache";
repo = "thrift";
tag = "v${finalAttrs.version}";
hash = "sha256-gGAO+D0A/hEoHMm6OvRBc1Mks9y52kfd0q/Sg96pdW4=";
};
# Workaround to make the Python wrapper not drop this package:
# pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
pythonPath = [ ];
nativeBuildInputs = [
bison
cmake
flex
pkg-config
(python3.withPackages (
ps:
with ps;
[
setuptools
six
]
++ lib.optionals (!static) [
twisted
]
))
];
buildInputs = [
boost
];
strictDeps = true;
propagatedBuildInputs = [
libevent
openssl
zlib
];
nativeCheckInputs = [ ctestCheckHook ];
preConfigure = ''
export PY_PREFIX=$out
'';
cmakeFlags = [
(lib.cmakeBool "BUILD_JAVASCRIPT" false)
(lib.cmakeBool "BUILD_NODEJS" false)
(lib.cmakeBool "BUILD_SHARED_LIBS" (!static))
(lib.cmakeBool "OPENSSL_USE_STATIC_LIBS" static)
# FIXME: Fails to link in static mode with undefined reference to
# `boost::unit_test::unit_test_main(bool (*)(), int, char**)'
(lib.cmakeBool "BUILD_TESTING" (!static))
];
disabledTests = [
"UnitTests" # getaddrinfo() -> -3; Temporary failure in name resolution
"python_test" # many failures about python 2 or network things
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Tests that hang up in the Darwin sandbox
"SecurityTest"
"SecurityFromBufferTest"
"python_test"
# fails on hydra, passes locally
"concurrency_test"
# Tests that fail in the Darwin sandbox when trying to use network
"UnitTests"
"TInterruptTest"
"TServerIntegrationTest"
"processor"
"TNonblockingServerTest"
"TNonblockingSSLServerTest"
"StressTest"
"StressTestConcurrent"
"StressTestNonBlocking"
];
doCheck = !static;
enableParallelChecking = false;
meta = with lib; {
description = "Library for scalable cross-language services";
mainProgram = "thrift";
homepage = "https://thrift.apache.org/";
license = licenses.asl20;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ bjornfor ];
};
})

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
gobject-introspection,
python3Packages,
pciutils,
wrapGAppsNoGuiHook,
}:
stdenv.mkDerivation rec {
pname = "throttled";
version = "0.11";
src = fetchFromGitHub {
owner = "erpalma";
repo = "throttled";
rev = "v${version}";
sha256 = "sha256-+3ktDkr5hvOfHcch4+mjgJqcuw24UgWTkJqTyDQumyk=";
};
nativeBuildInputs = [
gobject-introspection
python3Packages.wrapPython
wrapGAppsNoGuiHook
];
pythonPath = with python3Packages; [
configparser
dbus-python
pygobject3
];
# The upstream unit both assumes the install location, and tries to run in a virtualenv
postPatch = ''
sed -e 's|ExecStart=.*|ExecStart=${placeholder "out"}/bin/throttled.py|' -i systemd/throttled.service
substituteInPlace throttled.py --replace "'setpci'" "'${pciutils}/bin/setpci'"
'';
installPhase = ''
runHook preInstall
install -D -m755 -t $out/bin throttled.py
install -D -t $out/bin throttled.py mmio.py
install -D -m644 -t $out/etc etc/*
install -D -m644 -t $out/lib/systemd/system systemd/*
runHook postInstall
'';
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
postFixup = "wrapPythonPrograms";
meta = with lib; {
description = "Fix for Intel CPU throttling issues";
homepage = "https://github.com/erpalma/throttled";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = [ ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
libxcrypt,
}:
stdenv.mkDerivation rec {
pname = "thttpd";
version = "2.29";
src = fetchurl {
url = "https://acme.com/software/thttpd/${pname}-${version}.tar.gz";
sha256 = "15x3h4b49wgfywn82i3wwbf38mdns94mbi4ma9xiwsrjv93rzh4r";
};
prePatch = ''
sed -i -e 's/getline/getlineX/' extras/htpasswd.c
sed -i -e 's/chmod 2755/chmod 755/' extras/Makefile.in
'';
# Work around failures with GCC 14, upstream is inactive unfortunately
# https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
NIX_CFLAGS_COMPILE = [
"-Wno-error=implicit-int"
"-Wno-error=implicit-function-declaration"
];
buildInputs = [
libxcrypt
];
preInstall = ''
mkdir -p "$out/man/man1"
sed -i -e 's/-o bin -g bin *//' Makefile
sed -i -e '/chgrp/d' extras/Makefile
'';
meta = {
description = "Tiny/turbo/throttling HTTP server";
homepage = "http://www.acme.com/software/thttpd/";
license = lib.licenses.bsd2;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "thud";
version = "0.3.1";
src = fetchFromGitHub {
owner = "donovanglover";
repo = "thud";
rev = version;
hash = "sha256-BmrJaZ1IKXjx4/QkBDZyXvTTaalfEOKsBp9ZCW8px7I=";
};
cargoHash = "sha256-J7YioL8AIhoaPsYPzOXbwz76sMmBbDI/eql1HgDFgCU=";
nativeBuildInputs = [
installShellFiles
];
postInstall = ''
install -Dm644 assets/thud.thumbnailer $out/share/thumbnailers/thud.thumbnailer
substituteInPlace $out/share/thumbnailers/thud.thumbnailer --replace "thud" "$out/bin/thud"
installManPage target/man/thud.1
installShellCompletion --cmd thud \
--bash <(cat target/completions/thud.bash) \
--fish <(cat target/completions/thud.fish) \
--zsh <(cat target/completions/_thud)
'';
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Generate directory thumbnails for GTK-based file browsers from images inside them";
homepage = "https://github.com/donovanglover/thud";
license = licenses.mit;
maintainers = with maintainers; [ donovanglover ];
mainProgram = "thud";
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
python3,
fetchFromSourcehut,
gtk3,
libhandy_0,
gobject-introspection,
meson,
pkg-config,
ninja,
gettext,
glib,
desktop-file-utils,
wrapGAppsHook3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "thumbdrives";
version = "0.3.2";
format = "other";
src = fetchFromSourcehut {
owner = "~martijnbraam";
repo = "thumbdrives";
rev = version;
hash = "sha256-Mh3NSEYscnzw6kjR9m0XbTygj07cIQwdyLcdLpfKi3Y=";
};
postPatch = ''
patchShebangs build-aux/meson
'';
nativeBuildInputs = [
meson
pkg-config
ninja
gettext
glib
gtk3
desktop-file-utils
wrapGAppsHook3
gobject-introspection
];
buildInputs = [
gtk3
libhandy_0
];
propagatedBuildInputs = with python3.pkgs; [
pygobject3
pyxdg
];
meta = with lib; {
description = "USB mass storage emulator for Linux handhelds";
homepage = "https://sr.ht/~martijnbraam/thumbdrives/";
license = licenses.mit;
maintainers = with maintainers; [
chuangzhu
Luflosi
];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,13 @@
diff --git i/src/swapper.rs w/src/swapper.rs
index c901f48..cbd278d 100644
--- i/src/swapper.rs
+++ w/src/swapper.rs
@@ -215,7 +215,7 @@ impl<'a> Swapper<'a> {
};
let pane_command = format!(
- "tmux capture-pane -J -t {active_pane_id} -p{scroll_params} | tail -n {height} | {dir}/target/release/thumbs -f '%U:%H' -t {tmp} {args}; tmux swap-pane -t {active_pane_id}; {zoom_command} tmux wait-for -S {signal}",
+ "tmux capture-pane -J -t {active_pane_id} -p{scroll_params} | tail -n {height} | {dir}/thumbs -f '%U:%H' -t {tmp} {args}; tmux swap-pane -t {active_pane_id}; {zoom_command} tmux wait-for -S {signal}",
active_pane_id = active_pane_id,
scroll_params = scroll_params,
height = self.active_pane_height.unwrap_or(i32::MAX),

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "thumbs";
version = "0.8.0";
src = fetchFromGitHub {
owner = "fcsonline";
repo = "tmux-thumbs";
rev = version;
sha256 = "sha256-XMz1ZOTz2q1Dt4QdxG83re9PIsgvxTTkytESkgKxhGM=";
};
cargoHash = "sha256-xvfjWS1QZWrlwytFyWVtjOyB3EPT9leodVLt72yyM4E=";
patches = [ ./fix.patch ];
meta = with lib; {
homepage = "https://github.com/fcsonline/tmux-thumbs";
description = "Lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator";
license = licenses.mit;
maintainers = with maintainers; [ ghostbuster91 ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
boost,
cmake,
fetchFromGitHub,
pkg-config,
txt2tags,
udevCheckHook,
}:
stdenv.mkDerivation rec {
pname = "thunderbolt";
version = "0.9.3";
src = fetchFromGitHub {
owner = "01org";
repo = "thunderbolt-software-user-space";
rev = "v${version}";
sha256 = "02w1bfm7xvq0dzkhwqiq0camkzz9kvciyhnsis61c8vzp39cwx0x";
};
nativeBuildInputs = [
cmake
pkg-config
txt2tags
udevCheckHook
];
buildInputs = [ boost ];
cmakeFlags = [
"-DUDEV_BIN_DIR=${placeholder "out"}/bin"
"-DUDEV_RULES_DIR=${placeholder "out"}/etc/udev/rules.d"
];
doInstallCheck = true;
meta = {
description = "Thunderbolt user-space components";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.ryantrinkle ];
homepage = "https://01.org/thunderbolt-sw";
platforms = lib.platforms.linux;
};
}