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,34 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "ta-lib";
version = "0.4.0";
src = fetchFromGitHub {
owner = "rafa-dot-el";
repo = "talib";
rev = version;
sha256 = "sha256-bIzN8f9ZiOLaVzGAXcZUHUh/v9z1U+zY+MnyjJr1lSw=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
];
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Add technical analysis to your own financial market trading applications";
mainProgram = "ta-lib-config";
homepage = "https://ta-lib.org/";
license = lib.licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ rafael ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "tab-rs";
version = "0.5.7";
src = fetchFromGitHub {
owner = "austinjones";
repo = "tab-rs";
rev = "v${version}";
sha256 = "1crj0caimin667f9kz34c0sm77892dmqaf1kxryqakqm75az5wfr";
};
cargoHash = "sha256-4bscAhYE3JNk4ikTH+Sw2kGDDsBWcCZZ88weg9USjC0=";
# many tests are failing
doCheck = false;
meta = with lib; {
description = "Intuitive, config-driven terminal multiplexer designed for software & systems engineers";
homepage = "https://github.com/austinjones/tab-rs";
license = licenses.mit;
maintainers = [ ];
mainProgram = "tab";
broken = (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64); # Added 2023-11-13
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
bison,
flex,
libice,
libsm,
libx11,
libxext,
libxmu,
xorgproto,
libxrandr,
libxt,
writeScript,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tab-window-manager";
version = "1.0.13.1";
src = fetchurl {
url = "mirror://xorg/individual/app/twm-${finalAttrs.version}.tar.xz";
hash = "sha256-pSU0dVqotJLIhOUvqYi6yEq01UZBlUZ5uarwjjI98sU=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
bison
flex
];
buildInputs = [
xorgproto
libice
libsm
libx11
libxext
libxmu
libxrandr
libxt
];
passthru = {
updateScript = writeScript "update-${finalAttrs.pname}" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts
version="$(list-directory-versions --pname twm \
--url https://xorg.freedesktop.org/releases/individual/app/ \
| sort -V | tail -n1)"
update-source-version ${finalAttrs.pname} "$version"
'';
};
meta = {
description = "Default Window Manager for the X Window System";
longDescription = ''
The Tab Window Manager (twm) is a window manager for the X Window System.
It provides titlebars, shaped windows, several forms of icon management, user-defined macro
functions, click-to-type and pointer-driven keyboard focus, and user-specified key and pointer
button bindings.
'';
homepage = "https://gitlab.freedesktop.org/xorg/app/twm";
license = with lib.licenses; [
mitOpenGroup
hpnd
x11
];
mainProgram = "twm";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
}:
stdenv.mkDerivation rec {
version = "9.2";
pname = "tab";
src = fetchFromGitHub {
owner = "ivan-tkatchev";
repo = "tab";
rev = version;
hash = "sha256-UOXfnpzYMKDdp8EeBo2HsVPGn61hkCqHe8olX9KAgOU=";
};
# gcc12; see https://github.com/ivan-tkatchev/tab/commit/673bdac998
postPatch = ''
sed '1i#include <cstring>' -i deps.h
'';
nativeCheckInputs = [ python3 ];
doCheck = !stdenv.hostPlatform.isDarwin;
checkTarget = "test";
installPhase = ''
runHook preInstall
install -Dm555 -t $out/bin tab
install -Dm444 -t $out/share/doc/tab docs/*.html
runHook postInstall
'';
meta = with lib; {
description = "Programming language/shell calculator";
mainProgram = "tab";
homepage = "https://tab-lang.xyz";
license = licenses.boost;
maintainers = with maintainers; [ mstarzyk ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
nodejs,
pnpm_9,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tabby-agent";
version = "0.31.2";
src = fetchFromGitHub {
owner = "TabbyML";
repo = "tabby";
tag = "v${finalAttrs.version}";
hash = "sha256-dVQ/OLJnXgkzWfX3p6Cplw9hti2jXoMKCvKhm6YNzAI=";
};
nativeBuildInputs = [
pnpm_9.configHook
wrapGAppsHook3
];
buildInputs = [
nodejs
];
buildPhase = ''
runHook preBuild
pnpm --filter=tabby-agent build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r ./clients/tabby-agent/dist $out/dist
ln -s $out/dist/node/index.js $out/bin/tabby-agent
chmod +x $out/bin/tabby-agent
runHook postInstall
'';
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-SiJJxRzmKQxqw3UESN7q+3qkU1nK+7z6K5RpIMRRces=";
};
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v([0-9.]+)$"
];
};
meta = {
homepage = "https://github.com/TabbyML/tabby";
changelog = "https://github.com/TabbyML/tabby/releases/tag/v${finalAttrs.version}";
description = "Language server used to communicate with Tabby server";
mainProgram = "tabby-agent";
license = lib.licenses.asl20;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,194 @@
{
config,
lib,
rustPlatform,
fetchFromGitHub,
nix-update-script,
stdenv,
git,
openssl,
pkg-config,
protobuf,
cmake,
llama-cpp,
apple-sdk_15,
autoAddDriverRunpath,
versionCheckHook,
cudaSupport ? config.cudaSupport,
rocmSupport ? config.rocmSupport,
metalSupport ? stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64,
# one of [ null "cpu" "rocm" "cuda" "metal" ];
acceleration ? null,
}:
let
inherit (lib) optional optionals flatten;
# References:
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/ll/llama-cpp/package.nix
# https://github.com/NixOS/nixpkgs/blob/master/pkgs/tools/misc/ollama/default.nix
pname = "tabby";
version = "0.28.0";
availableAccelerations = flatten [
(optional cudaSupport "cuda")
(optional rocmSupport "rocm")
(optional metalSupport "metal")
];
warnIfMultipleAccelerationMethods =
configured:
(
let
len = builtins.length configured;
result = if len == 0 then "cpu" else (builtins.head configured);
in
lib.warnIf (len > 1) ''
building tabby with multiple acceleration methods enabled is not
supported; falling back to `${result}`
'' result
);
# If user did not not override the acceleration attribute, then try to use one of
# - nixpkgs.config.cudaSupport
# - nixpkgs.config.rocmSupport
# - metal if (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
# !! warn if multiple acceleration methods are enabled and default to the first one in the list
featureDevice =
if (isNull acceleration) then
(warnIfMultipleAccelerationMethods availableAccelerations)
else
acceleration;
warnIfNotLinux =
api:
(lib.warnIfNot stdenv.hostPlatform.isLinux
"building tabby with `${api}` is only supported on linux; falling back to cpu"
stdenv.hostPlatform.isLinux
);
warnIfNotDarwinAarch64 =
api:
(lib.warnIfNot (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
"building tabby with `${api}` is only supported on Darwin-aarch64; falling back to cpu"
(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
);
validAccel = lib.assertOneOf "tabby.featureDevice" featureDevice [
"cpu"
"rocm"
"cuda"
"metal"
];
# TODO(ghthor): there is a bug here where featureDevice could be cuda, but enableCuda is false
# The would result in a startup failure of the service module.
enableRocm = validAccel && (featureDevice == "rocm") && (warnIfNotLinux "rocm");
enableCuda = validAccel && (featureDevice == "cuda") && (warnIfNotLinux "cuda");
enableMetal = validAccel && (featureDevice == "metal") && (warnIfNotDarwinAarch64 "metal");
# We have to use override here because tabby doesn't actually tell llama-cpp
# to use a specific device type as it is relying on llama-cpp only being
# built to use one type of device.
#
# See: https://github.com/TabbyML/tabby/blob/v0.11.1/crates/llama-cpp-bindings/include/engine.h#L20
#
llamaccpPackage = llama-cpp.override {
rocmSupport = enableRocm;
cudaSupport = enableCuda;
metalSupport = enableMetal;
};
# TODO(ghthor): some of this can be removed
darwinBuildInputs = [
llamaccpPackage
]
++ optionals stdenv.hostPlatform.isDarwin [
apple-sdk_15
];
cudaBuildInputs = [ llamaccpPackage ];
rocmBuildInputs = [ llamaccpPackage ];
in
rustPlatform.buildRustPackage {
inherit pname version;
inherit featureDevice;
src = fetchFromGitHub {
owner = "TabbyML";
repo = "tabby";
tag = "v${version}";
hash = "sha256-cdY1/k7zZ4am6JP9ghnnJFHop/ZcnC/9alzd2MS8xqc=";
fetchSubmodules = true;
};
cargoHash = "sha256-yEns0QAARmuV697/na08K8uwJWZihY3pMyCZcERDlFM=";
# Don't need to build llama-cpp-server (included in default build)
# We also don't add CUDA features here since we're using the overridden llama-cpp package
cargoBuildFlags = [
"--no-default-features"
"--features"
"ee"
"--package"
"tabby"
];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
nativeBuildInputs = [
git
pkg-config
protobuf
cmake
]
++ optionals enableCuda [
autoAddDriverRunpath
];
buildInputs = [
openssl
]
++ optionals stdenv.hostPlatform.isDarwin darwinBuildInputs
++ optionals enableCuda cudaBuildInputs
++ optionals enableRocm rocmBuildInputs;
postInstall = ''
# NOTE: Project contains a subproject for building llama-server
# But, we already have a derivation for this
ln -s ${lib.getExe' llama-cpp "llama-server"} $out/bin/llama-server
'';
env = {
OPENSSL_NO_VENDOR = 1;
};
# Fails with:
# file cannot create directory: /var/empty/local/lib64/cmake/Llama
doCheck = false;
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v([0-9.]+)$"
];
};
meta = {
homepage = "https://github.com/TabbyML/tabby";
changelog = "https://github.com/TabbyML/tabby/releases/tag/v${version}";
description = "Self-hosted AI coding assistant";
mainProgram = "tabby";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.ghthor ];
broken = stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isAarch64;
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
rustPlatform,
installShellFiles,
perl,
}:
rustPlatform.buildRustPackage rec {
pname = "tabiew";
version = "0.11.1";
src = fetchFromGitHub {
owner = "shshemi";
repo = "tabiew";
tag = "v${version}";
hash = "sha256-RvbHXnDaoqMHjA9u9kFs5MB6xeQG/E35PEu+1LIXIBU=";
};
cargoHash = "sha256-F+5Iy8eY5s+EfMqx4z4mh0SVoBwwnbM33c3yE7FUy4g=";
nativeBuildInputs = [
installShellFiles
perl
];
outputs = [
"out"
"man"
];
postInstall = ''
installManPage target/manual/tabiew.1
installShellCompletion \
--bash target/completion/tw.bash \
--zsh target/completion/_tw \
--fish target/completion/tw.fish
'';
doCheck = false; # there are no tests
meta = {
description = "Lightweight, terminal-based application to view and query delimiter separated value formatted documents, such as CSV and TSV files";
homepage = "https://github.com/shshemi/tabiew";
changelog = "https://github.com/shshemi/tabiew/releases/tag/v${version}";
license = lib.licenses.mit;
mainProgram = "tw";
maintainers = with lib.maintainers; [ anas ];
platforms = with lib.platforms; unix ++ windows;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchurl,
_7zz,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tableplus";
version = "538";
src = fetchurl {
url = "https://download.tableplus.com/macos/${finalAttrs.version}/TablePlus.dmg";
hash = "sha256-db3dvjEzkqWrEO+lXyImk0cVBkh8MnCwHOYKIg+kRC4=";
};
sourceRoot = "TablePlus.app";
nativeBuildInputs = [ _7zz ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications/TablePlus.app"
cp -R . "$out/Applications/TablePlus.app"
mkdir "$out/bin"
ln -s "$out/Applications/TablePlus.app/Contents/MacOS/TablePlus" "$out/bin/${finalAttrs.pname}"
runHook postInstall
'';
meta = with lib; {
description = "Database management made easy";
homepage = "https://tableplus.com";
license = licenses.unfree;
maintainers = with maintainers; [ yamashitax ];
platforms = platforms.darwin;
};
})

View File

@@ -0,0 +1,53 @@
{
stdenv,
lib,
fetchurl,
unzip,
}:
let
sources = lib.importJSON ./sources.json;
platform =
if (builtins.hasAttr stdenv.hostPlatform.system sources.platforms) then
builtins.getAttr (stdenv.hostPlatform.system) sources.platforms
else
throw "Not supported on ${stdenv.hostPlatform.system}";
in
stdenv.mkDerivation {
pname = "tabnine";
inherit (sources) version;
src = fetchurl {
url = "https://update.tabnine.com/bundles/${sources.version}/${platform.name}/TabNine.zip";
inherit (platform) hash;
};
dontBuild = true;
# Work around the "unpacker appears to have produced no directories"
# case that happens when the archive doesn't have a subdirectory.
sourceRoot = ".";
nativeBuildInputs = [ unzip ];
installPhase = ''
runHook preInstall
install -Dm755 TabNine $out/bin/TabNine
install -Dm755 TabNine-deep-cloud $out/bin/TabNine-deep-cloud
install -Dm755 TabNine-deep-local $out/bin/TabNine-deep-local
install -Dm755 WD-TabNine $out/bin/WD-TabNine
runHook postInstall
'';
passthru = {
platform = platform.name;
updateScript = ./update.sh;
};
meta = with lib; {
homepage = "https://tabnine.com";
description = "Smart Compose for code that uses deep learning to help you write code faster";
license = licenses.unfree;
platforms = attrNames sources.platforms;
maintainers = with maintainers; [ lovesegfault ];
};
}

View File

@@ -0,0 +1,17 @@
{
"version": "4.154.0",
"platforms": {
"x86_64-linux": {
"name": "x86_64-unknown-linux-musl",
"hash": "sha256-FGhe3ih8WEOW/jfT7t+9IK7f17b4JwCXuQfwxZyOUNU="
},
"aarch64-darwin": {
"name": "aarch64-apple-darwin",
"hash": "sha256-8bwrbMQJkBMLgWt0n6R6uc+s6SxZr8JiGM+2ni5lgqY="
},
"x86_64-darwin": {
"name": "x86_64-apple-darwin",
"hash": "sha256-C0zePvocvgm8gP0C++7xJ5yb8MLb7kY/5HNsbEeZu6Q="
}
}
}

View File

@@ -0,0 +1,50 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq git
#shellcheck shell=bash
set -euo pipefail
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
function prefetch-sri() {
nix-prefetch-url "$1" 2>/dev/null |
xargs nix --experimental-features nix-command hash to-sri --type sha256
}
declare -A platforms=(
[x86_64-unknown-linux-musl]="x86_64-linux"
[x86_64-apple-darwin]="x86_64-darwin"
[aarch64-apple-darwin]="aarch64-darwin"
)
old_version="$(jq -r '.version' "$SCRIPT_DIR/sources.json")"
new_version="$(curl -sS https://update.tabnine.com/bundles/version)"
echo "Updating $old_version -> $new_version"
sources_tmp="$(mktemp)"
trap 'rm -f "$sources_tmp"' EXIT
cat <<EOF >"$sources_tmp"
{
"version": "$new_version",
"platforms": {}
}
EOF
for platform in "${!platforms[@]}"; do
url="https://update.tabnine.com/bundles/${new_version}/${platform}/TabNine.zip"
hash="$(prefetch-sri "$url")"
nix_platform="${platforms[$platform]}"
cat <<<"$(jq --arg nix_platform "$nix_platform" --arg platform "$platform" --arg hash "$hash" '.platforms += {($nix_platform): {name: $platform, hash: $hash}}' "$sources_tmp")" >"$sources_tmp"
done
cp "$sources_tmp" "$SCRIPT_DIR/sources.json"
if [[ `git status --porcelain "$SCRIPT_DIR/sources.json"` ]]; then
git add "$SCRIPT_DIR/sources.json"
git commit -m "tabnine: $old_version -> $new_version"
else
echo "No changes made to $SCRIPT_DIR/sources.json, skipping commit"
fi

View File

@@ -0,0 +1,51 @@
{
lib,
maven,
fetchFromGitHub,
makeWrapper,
jre,
}:
maven.buildMavenPackage rec {
pname = "tabula-java";
version = "1.0.5";
src = fetchFromGitHub {
owner = "tabulapdf";
repo = "tabula-java";
rev = "v${version}";
hash = "sha256-lg8/diyGhfkUU0w7PEOlxb1WNpJZVDDllxMMsTIU/Cw=";
};
mvnHash = "sha256-CXJm9YlYsYViChFcH9e2P9pxK0q/tLWODOzZPXZ8hK0=";
mvnParameters = "compile assembly:single -Dmaven.test.skip=true";
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib}
cp target/tabula-${version}-jar-with-dependencies.jar $out/lib/tabula.jar
makeWrapper ${jre}/bin/java $out/bin/tabula-java \
--add-flags "-cp $out/lib/tabula.jar" \
--add-flags "technology.tabula.CommandLineApp"
runHook postInstall
'';
meta = with lib; {
description = "Library for extracting tables from PDF files";
longDescription = ''
tabula-java is the table extraction engine that powers
Tabula. You can use tabula-java as a command-line tool to
programmatically extract tables from PDFs.
'';
homepage = "https://tabula.technology/";
license = licenses.mit;
maintainers = [ maintainers.jakewaksbaum ];
platforms = platforms.all;
mainProgram = "tabula-java";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchurl,
flex,
bison,
perl,
libnsl,
# --with-libwrap=yes is currently broken, TODO unbreak
withLibWrap ? false,
tcp_wrappers,
}:
stdenv.mkDerivation rec {
pname = "tacacsplus";
version = "4.0.4.28";
src = fetchurl {
url = "ftp://ftp.shrubbery.net/pub/tac_plus/tacacs-F${version}.tar.gz";
hash = "sha256-FH8tyY0m0vk/Crp2yYjO0Zb/4cAB3C6R94ihosdHIZ4=";
};
nativeBuildInputs = [
flex
bison
];
buildInputs = [
perl
libnsl
]
++ lib.optionals withLibWrap [
tcp_wrappers
];
configureFlags = lib.optionals (!withLibWrap) [
"--with-libwrap=no"
];
meta = with lib; {
description = "Protocol for authentication, authorization and accounting (AAA) services for routers and network devices";
homepage = "http://www.shrubbery.net/tac_plus/";
license = licenses.free;
maintainers = with maintainers; [ _0x4A6F ];
platforms = with platforms; linux;
};
}

View File

@@ -0,0 +1,41 @@
{
cmake,
fetchFromGitHub,
lib,
ninja,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tacent";
version = "0.8.18";
src = fetchFromGitHub {
owner = "bluescan";
repo = "tacent";
tag = "v${finalAttrs.version}";
hash = "sha256-z8VuJS8OaVw5CeO/udvBEmcURKIy1oWVYUv6Ai8lTI8=";
};
nativeBuildInputs = [
cmake
ninja
];
meta = {
description = "C++ library providing linear algebra and various utility functions";
longDescription = ''
A C++ library implementing linear algebra, text and file IO, UTF-N conversions,
containers, image loading/saving, image quantization/filtering, command-line parsing, etc.
'';
homepage = "https://github.com/bluescan/tacent";
changelog = "https://github.com/bluescan/tacent/releases/tag/v${finalAttrs.version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ PopeRigby ];
platforms = lib.platforms.linux;
badPlatforms = [
# /build/source/UnitTests/Src/UnitTests.cpp:149:15: error: 'Rule' is not a member of 'tUnitTest'
"aarch64-linux"
];
};
})

View File

@@ -0,0 +1,70 @@
{
autoPatchelfHook,
cmake,
fetchFromGitHub,
installShellFiles,
lib,
libGL,
ninja,
stdenv,
tacent,
xorg,
zenity,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tacentview";
version = "1.0.46";
src = fetchFromGitHub {
owner = "bluescan";
repo = "tacentview";
tag = "v${finalAttrs.version}";
hash = "sha256-d4A26p1hmkYEZ+h6kRbHHr4QmAc3PMe3qYdkeKIRGkU=";
};
nativeBuildInputs = [
cmake
ninja
installShellFiles
autoPatchelfHook
];
buildInputs = [
stdenv.cc.cc.lib
tacent
xorg.libX11
xorg.libxcb
zenity
];
runtimeDependencies = [ libGL ];
cmakeFlags = [
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_TACENT" "${tacent.src}")
(lib.cmakeBool "PACKAGE_NIX" true)
];
installPhase = ''
runHook preInstall
installBin tacentview
mkdir -p $out/share/tacentview
cp -r ../Assets $out/share/tacentview/
cp -r ../Linux/deb_template/usr/share/icons $out/share
cp -r ../Linux/deb_template/usr/share/applications $out/share
runHook postInstall
'';
meta = {
description = "Image and texture viewer";
homepage = "https://github.com/bluescan/tacentview";
changelog = "https://github.com/bluescan/tacentview/releases/tag/v${finalAttrs.version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ PopeRigby ];
mainProgram = "tacentview";
platforms = with lib.platforms; linux ++ windows;
};
})

View File

@@ -0,0 +1,37 @@
diff --git a/unix/Make-arch b/unix/Make-arch
index 08afb85..dbeb691 100644
--- a/unix/Make-arch
+++ b/unix/Make-arch
@@ -920,6 +920,15 @@ macosx:
"RANLIB = ranlib" \
"LIBS = -L. -ltachyon $(MISCLIB)"
+macosx-64:
+ $(MAKE) all \
+ "ARCH = macosx" \
+ "CFLAGS = -Os -m64 -ffast-math -DBsd $(MISCFLAGS)" \
+ "ARFLAGS = r" \
+ "STRIP = strip" \
+ "RANLIB = ranlib" \
+ "LIBS = -L. -ltachyon $(MISCLIB)"
+
macosx-thr:
$(MAKE) all \
"ARCH = macosx-thr" \
@@ -1209,6 +1218,16 @@ linux-thr:
"RANLIB = ranlib" \
"LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
+# Linux Arm using gcc
+linux-arm:
+ $(MAKE) all \
+ "ARCH = linux-arm" \
+ "CFLAGS = -Wall -O3 -fomit-frame-pointer -ffast-math -DLinux $(MISCFLAGS)" \
+ "ARFLAGS = r" \
+ "STRIP = strip" \
+ "RANLIB = ranlib" \
+ "LIBS = -L. -ltachyon $(MISCLIB) -lm -lpthread"
+
# Linux x86 using gcc, threads, and OpenGL
linux-thr-ogl:
$(MAKE) all \

View File

@@ -0,0 +1,60 @@
diff --git a/unix/Make-config b/unix/Make-config
--- a/unix/Make-config
+++ b/unix/Make-config
@@ -18,7 +18,7 @@
# Bourne Shell Configuration:
# set SHELL=/bin/sh or wherever your bourne shell is
##########################################################################
-SHELL=/bin/sh
+# SHELL=/bin/sh
@@ -30,7 +30,7 @@
# The following line should be set to -Ixxx where xxx is your X11 include path
# Sun puts X11 in /usr/openwin/xxx
-X11INC= -I/usr/openwin/include
+# X11INC= -I/usr/openwin/include
# Others typically use /usr/X11 or /usr/X11R6
#X11INC= -I/usr/X11
@@ -105,9 +105,9 @@
##########################################################################
# Customize MPI directories and includes as-needed.
# A typical MPICH installation location:
-MPIDIR=/usr/local/mpi
-MPIINC=$(MPIDIR)/include
-MPILIB=$(MPIDIR)/lib
+# MPIDIR=/usr/local/mpi
+# MPIINC=$(MPIDIR)/include
+# MPILIB=$(MPIDIR)/lib
# MPI defines and any flags needed by the local installation.
# Always list -DMPI at a minimum.
@@ -166,9 +166,9 @@
# http://www.ijg.org/files/
##########################################################################
# Uncomment the following lines to disable JPEG support
-USEJPEG=
-JPEGINC=
-JPEGLIB=
+# USEJPEG=
+# JPEGINC=
+# JPEGLIB=
# Uncomment the following lines to enable JPEG support
#USEJPEG= -DUSEJPEG
@@ -186,9 +186,9 @@
# http://www.libpng.org/
##########################################################################
# Uncomment the following lines to disable PNG support
-USEPNG=
-PNGINC=
-PNGLIB=
+# USEPNG=
+# PNGINC=
+# PNGLIB=
# Uncomment the following lines to enable PNG support
#USEPNG= -DUSEPNG

View File

@@ -0,0 +1,93 @@
{
lib,
stdenv,
fetchurl,
libjpeg,
libpng,
withJpegSupport ? true, # support jpeg output
withPngSupport ? true, # support png output
}:
stdenv.mkDerivation rec {
pname = "tachyon";
version = "0.99.5";
src = fetchurl {
url = "http://jedi.ks.uiuc.edu/~johns/tachyon/files/${version}/${pname}-${version}.tar.gz";
sha256 = "sha256-CSA8ECMRFJ9d9cw2dAn5bHJXQmZtGcJNtbqZTVqBpvU=";
};
buildInputs =
lib.optionals withJpegSupport [
libjpeg
]
++ lib.optionals withPngSupport [
libpng
];
preBuild = ''
cd unix
''
+ lib.optionalString withJpegSupport ''
export USEJPEG=" -DUSEJPEG"
export JPEGLIB=" -ljpeg"
''
+ lib.optionalString withPngSupport ''
export USEPNG=" -DUSEPNG"
export PNGLIB=" -lpng -lz"
'';
arch =
if stdenv.hostPlatform.system == "x86_64-linux" then
"linux-64-thr"
else if stdenv.hostPlatform.system == "i686-linux" then
"linux-thr"
else
# 2021-03-29: multithread (-DTHR -D_REENTRANT) was disabled on linux-arm
# because it caused Sage's 3D plotting tests to hang indefinitely.
# see https://github.com/NixOS/nixpkgs/pull/117465
if stdenv.hostPlatform.system == "aarch64-linux" then
"linux-arm"
else if stdenv.hostPlatform.system == "armv7l-linux" then
"linux-arm"
else if stdenv.hostPlatform.system == "aarch64-darwin" then
"macosx"
else if stdenv.hostPlatform.system == "x86_64-darwin" then
"macosx-x86-64-thr"
else if stdenv.hostPlatform.system == "i686-cygwin" then
"win32"
else if stdenv.hostPlatform.system == "x86_64-freebsd" then
"bsd"
else if stdenv.hostPlatform.system == "x686-freebsd" then
"bsd"
else
throw "Don't know what arch to select for tachyon build";
makeFlags = [ arch ];
patches = [
# Remove absolute paths in Make-config (and unset variables so they can be set in preBuild)
./no-absolute-paths.patch
# Include new targets (like arm)
./make-archs.patch
];
postPatch = ''
# Ensure looks for nix-provided Carbon, not system frameworks
substituteInPlace unix/Make-arch \
--replace '-F/System/Library/Frameworks' ""
'';
installPhase = ''
cd ../compile/${arch}
mkdir -p "$out"/{bin,lib,include,share/doc/tachyon,share/tachyon}
cp tachyon "$out"/bin
cp libtachyon.* "$out/lib"
cd ../..
cp src/*.h "$out/include/"
cp Changes Copyright README "$out/share/doc/tachyon"
cp -r scenes "$out/share/tachyon/scenes"
'';
meta = {
description = "Parallel / Multiprocessor Ray Tracing System";
mainProgram = "tachyon";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.raskin ];
platforms = with lib.platforms; linux ++ cygwin ++ darwin;
homepage = "http://jedi.ks.uiuc.edu/~johns/tachyon/";
};
}

View File

@@ -0,0 +1,75 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
python3,
llvmPackages,
enablePython ? false,
python ? python3,
}:
let
pyEnv = python.withPackages (
p: with p; [
numpy
scipy
distutils
]
);
in
stdenv.mkDerivation (finalAttrs: {
pname = "taco";
version = "unstable-2022-08-02";
src = fetchFromGitHub {
owner = "tensor-compiler";
repo = "taco";
rev = "2b8ece4c230a5f0f0a74bc6f48e28edfb6c1c95e";
fetchSubmodules = true;
hash = "sha256-PnBocyRLiLALuVS3Gkt/yJeslCMKyK4zdsBI8BFaTSg=";
};
src-new-pybind11 = python.pkgs.pybind11.src;
postPatch = ''
rm -rf python_bindings/pybind11/*
cp -r ${finalAttrs.src-new-pybind11}/* python_bindings/pybind11
find python_bindings/pybind11 -exec chmod +w {} \;
'';
# Remove test cases from cmake build as they violate modern C++ expectations
patches = [ ./taco.patch ];
nativeBuildInputs = [ cmake ];
buildInputs = lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp;
propagatedBuildInputs = lib.optional enablePython pyEnv;
cmakeFlags = [
"-DOPENMP=ON"
]
++ lib.optional enablePython "-DPYTHON=ON";
postInstall = lib.strings.optionalString enablePython ''
mkdir -p $out/${python.sitePackages}
cp -r lib/pytaco $out/${python.sitePackages}/.
'';
# The standard CMake test suite fails a single test of the CLI interface.
doCheck = false;
# Cython somehow gets built with references to /build/.
# However, the python module works flawlessly.
dontFixup = enablePython;
meta = {
description = "Computes sparse tensor expressions on CPUs and GPUs";
mainProgram = "taco";
license = lib.licenses.mit;
homepage = "https://github.com/tensor-compiler/taco";
maintainers = [ lib.maintainers.sheepforce ];
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/test/tests-tensor_types.cpp b/test/tests-tensor_types.cpp
index 39d1b30a..c507da81 100644
--- a/test/tests-tensor_types.cpp
+++ b/test/tests-tensor_types.cpp
@@ -45,7 +45,7 @@ TYPED_TEST_P(VectorTensorTest, types) {
ASSERT_EQ(t, a.getComponentType());
ASSERT_EQ(1, a.getOrder());
ASSERT_EQ(5, a.getDimension(0));
- map<vector<int>,TypeParam> vals = {{{0}, 1.0}, {{2}, 2.0}};
+ map<vector<int>,TypeParam> vals = {{{0}, (TypeParam)1.0}, {{2}, (TypeParam)2.0}};
for (auto& val : vals) {
a.insert(val.first, val.second);
}

View File

@@ -0,0 +1,63 @@
{
stdenv,
lib,
fetchFromGitHub,
pkg-config,
cmake,
cpp-utilities,
mp4v2,
libid3tag,
kdePackages,
qt6,
tagparser,
}:
stdenv.mkDerivation rec {
pname = "tageditor";
version = "3.9.7";
src = fetchFromGitHub {
owner = "martchus";
repo = "tageditor";
tag = "v${version}";
hash = "sha256-ETRlyAOCWIz8tioCsGXnmnuTnzWiUOb64vKsPm1hIt0=";
};
nativeBuildInputs = [
pkg-config
cmake
qt6.wrapQtAppsHook
];
buildInputs = [
mp4v2
libid3tag
cpp-utilities
kdePackages.qtutilities
qt6.qtbase
qt6.qttools
qt6.qtwebengine
tagparser
];
cmakeFlags = [
"-DQT_PACKAGE_PREFIX=Qt6"
"-DQt6_DIR=${qt6.qtbase}/lib/cmake/Qt6"
"-DQt6WebEngineWidgets_DIR=${qt6.qtwebengine}/lib/cmake/Qt6WebEngineWidgets"
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications
mv $out/bin/*.app $out/Applications
ln -s $out/Applications/tageditor.app/Contents/MacOS/tageditor $out/bin/tageditor
'';
meta = {
homepage = "https://github.com/Martchus/tageditor";
description = "Tag editor with Qt GUI and command-line interface supporting MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.matthiasbeyer ];
platforms = lib.platforms.unix;
mainProgram = "tageditor";
};
}

227
pkgs/by-name/ta/tagger/deps.json generated Normal file
View File

@@ -0,0 +1,227 @@
[
{
"pname": "Ace4896.DBus.Services.Secrets",
"version": "1.2.0",
"hash": "sha256-dgGnQL+y7UubFgG0dVmuz1J/uMhR7bOirKA38dHmOcQ="
},
{
"pname": "AcoustID.NET",
"version": "1.3.3",
"hash": "sha256-VF7GwQhk9hVBToj9K2UK356H6toDugMI/rosAT2P2TY="
},
{
"pname": "Cake.Tool",
"version": "4.0.0",
"hash": "sha256-guIxNh+ENqZroPaoh7bJ+R0OP9Ed64BAMYSbWKMrbIc="
},
{
"pname": "FuzzySharp",
"version": "2.0.2",
"hash": "sha256-GuWqVOo+AG8MSvIbusLPjKfJFQRJhSSJ9eGWljTBA/c="
},
{
"pname": "GetText.NET",
"version": "1.9.14",
"hash": "sha256-JAFqmwXkRJCHMOLIN2NShSe5aXtDvo5+II412oBj5KM="
},
{
"pname": "GirCore.Adw-1",
"version": "0.5.0",
"hash": "sha256-qfXR3lTI5IeFlZ+eoXiEjvvU7a94ksDA1NDDO+fjEow="
},
{
"pname": "GirCore.Cairo-1.0",
"version": "0.5.0",
"hash": "sha256-9vu8cLiI8UJzIwcx/EtNPp0uYBTAYYP7f+K4+78cLfU="
},
{
"pname": "GirCore.FreeType2-2.0",
"version": "0.5.0",
"hash": "sha256-ngF0UjqeWWPJM6oHWe1Ii+h1BUccFDQd1Qwz35DNCJk="
},
{
"pname": "GirCore.Gdk-4.0",
"version": "0.5.0",
"hash": "sha256-pl04bEdh1kzjzT2MgENyitvU9YNU+7zdxzSQBF+iVuw="
},
{
"pname": "GirCore.GdkPixbuf-2.0",
"version": "0.5.0",
"hash": "sha256-2dY45sZRqLAHjXx8G3aLGnftJuMS/367E7oMAtlkdT0="
},
{
"pname": "GirCore.Gio-2.0",
"version": "0.5.0",
"hash": "sha256-lEcxgUtvw+/wP68h1xXLodjALdFgA8fWlP8e75kcovs="
},
{
"pname": "GirCore.GLib-2.0",
"version": "0.5.0",
"hash": "sha256-e8/5XRtUr5PMROr9t3t1y+S5ittGigeMvkC1x0AaPpk="
},
{
"pname": "GirCore.GObject-2.0",
"version": "0.5.0",
"hash": "sha256-cobt8ueN6++TqbOfSn1yKYkjCKlpRc04te8BW2dQZfA="
},
{
"pname": "GirCore.Graphene-1.0",
"version": "0.5.0",
"hash": "sha256-mF5paOfxW2T/BIa9MSRBCXI0IxyjPEiHSVAl+58ZyJs="
},
{
"pname": "GirCore.Gsk-4.0",
"version": "0.5.0",
"hash": "sha256-joLS4KfAWkp3z8r7i5MtBDotTv2zMnYRw2bTQNNATJQ="
},
{
"pname": "GirCore.Gtk-4.0",
"version": "0.5.0",
"hash": "sha256-LN/u9QuAxRMDJfly1LeMwCgJMkTeZyJJ4unrmTpORlI="
},
{
"pname": "GirCore.HarfBuzz-0.0",
"version": "0.5.0",
"hash": "sha256-hBFkQK/LPSTIU8M8Tv0hyRG4d4ibh/Iaa3ZySYpg0TI="
},
{
"pname": "GirCore.Pango-1.0",
"version": "0.5.0",
"hash": "sha256-6cxAaxynKx7kTsLy++qcrhD+G7OBfVRYohe1MX3Sk1w="
},
{
"pname": "GirCore.PangoCairo-1.0",
"version": "0.5.0",
"hash": "sha256-tpIeKhZPrntKIFkeMIYyDHgOSw2Il/L4E7OpBHsUo0g="
},
{
"pname": "HtmlAgilityPack",
"version": "1.11.61",
"hash": "sha256-exRJTP7mHNt31CKaejKSSkKPm74ratfnpGl50AqZwlY="
},
{
"pname": "Markdig",
"version": "0.33.0",
"hash": "sha256-OWlYrZnvNIFwmxKnmfWTq1wOz9e+hewsiVJW3B43QLY="
},
{
"pname": "MetaBrainz.Common",
"version": "3.0.0",
"hash": "sha256-P+XTQhffqSVIn0ZbC5Npl80xlx1QYHoL0y20KTvKRy0="
},
{
"pname": "MetaBrainz.Common.Json",
"version": "6.0.2",
"hash": "sha256-4IcF9xZZmI3H7WAiuN2kK61BMXS4gh2T2WrCqkwQhX8="
},
{
"pname": "MetaBrainz.MusicBrainz",
"version": "6.1.0",
"hash": "sha256-wZBTTSQNPll/5/sZPPxa6d0QBjwA8FLA2vFE/838VWs="
},
{
"pname": "MetaBrainz.MusicBrainz.CoverArt",
"version": "6.0.0",
"hash": "sha256-yN+godNeB6l8ihNupq9cNe+PaYaPTngHJzwkMH9ySbE="
},
{
"pname": "Meziantou.Framework.Win32.CredentialManager",
"version": "1.4.5",
"hash": "sha256-aJyLlVg6jKY2Van0hwAC5JEF/j+YtEq5ZFLkyI3scsY="
},
{
"pname": "Microsoft.Data.Sqlite.Core",
"version": "8.0.0",
"hash": "sha256-aew8/vRyzCc7MMNHziR8tsg66EFkJC+Snst3F+a3Ehc="
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "5.0.0",
"hash": "sha256-5rFBJ8Fkw7+11iCG9nMVhOqPCpyVIrbUzrFQhc/2eHw="
},
{
"pname": "Microsoft.Win32.SystemEvents",
"version": "8.0.0",
"hash": "sha256-UcxurEamYD+Bua0PbPNMYAZaRulMrov8CfbJGIgTaRQ="
},
{
"pname": "Nickvision.Aura",
"version": "2023.11.4",
"hash": "sha256-us9K5RayuZGe2fkhk/c2Qw45gKmrfvyNBvHdcOnzWj0="
},
{
"pname": "Octokit",
"version": "9.0.0",
"hash": "sha256-5crRhibEw2pl8M6AmgutI/uA0xcBoFRSF43MDgNPhE8="
},
{
"pname": "SixLabors.ImageSharp",
"version": "3.1.4",
"hash": "sha256-zOqHVIInvJiqmx4JF+8USYvdKAGRZVUqQpdncrrjRjM="
},
{
"pname": "SQLitePCLRaw.bundle_e_sqlcipher",
"version": "2.1.6",
"hash": "sha256-ikaVYtmka8VuZ2BDbH4rkT/L19uLMZnUIZSdSfzpYpc="
},
{
"pname": "SQLitePCLRaw.core",
"version": "2.1.6",
"hash": "sha256-RxWjm52PdmMV98dgDy0BCpF988+BssRZUgALLv7TH/E="
},
{
"pname": "SQLitePCLRaw.lib.e_sqlcipher",
"version": "2.1.6",
"hash": "sha256-HyCw64Ir+JTmAQpBRR2Y7L/o1l+RiwoL9URDXoJVhTY="
},
{
"pname": "SQLitePCLRaw.provider.e_sqlcipher",
"version": "2.1.6",
"hash": "sha256-OD+cJ6dvUv/bYhMR9hWnsz23un1CHH5WKEnwghtpqMs="
},
{
"pname": "System.Drawing.Common",
"version": "8.0.0",
"hash": "sha256-xPNnKUTcZiqnTtRgI2YazMoZgay/prwKrJjbZUbVmcg="
},
{
"pname": "System.IO.Pipelines",
"version": "6.0.0",
"hash": "sha256-xfjF4UqTMJpf8KsBWUyJlJkzPTOO/H5MW023yTYNQSA="
},
{
"pname": "System.Memory",
"version": "4.5.3",
"hash": "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk="
},
{
"pname": "System.Memory",
"version": "4.5.5",
"hash": "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI="
},
{
"pname": "System.Text.Encoding.CodePages",
"version": "8.0.0",
"hash": "sha256-fjCLQc1PRW0Ix5IZldg0XKv+J1DqPSfu9pjMyNBp7dE="
},
{
"pname": "Tmds.DBus",
"version": "0.15.0",
"hash": "sha256-hnG44eEULZY79phZ/E1/RG2acjW0y12eIxam67iR5a8="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.15.0",
"hash": "sha256-4gk2vXDjKFaBh82gTkwg3c/5GRjiH+bvM5elfDSbKTU="
},
{
"pname": "Ude.NetStandard",
"version": "1.2.0",
"hash": "sha256-9Dq7UE5OiuvciURQV8Aa13elolt1fzDhvF8c8Yxznhw="
},
{
"pname": "z440.atl.core",
"version": "5.25.0",
"hash": "sha256-wyhSBvwzIXFLERBCr2s1zebaebOVANvUcwmJkrNdJi8="
}
]

View File

@@ -0,0 +1,68 @@
{
lib,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
blueprint-compiler,
chromaprint,
glib,
gtk4,
libadwaita,
}:
let
dotnet = dotnetCorePackages.dotnet_8;
in
buildDotnetModule rec {
pname = "tagger";
version = "2024.6.0-1";
src = fetchFromGitHub {
owner = "nlogozzo";
repo = "NickvisionTagger";
rev = version;
hash = "sha256-4OfByQYhLXmeFWxzhqt8d7pLUyuMLhDM20E2YcA9Q3s=";
};
projectFile = "NickvisionTagger.GNOME/NickvisionTagger.GNOME.csproj";
dotnet-sdk = dotnet.sdk;
dotnet-runtime = dotnet.runtime;
nugetDeps = ./deps.json;
nativeBuildInputs = [
blueprint-compiler
];
buildInputs = [
chromaprint
libadwaita
];
runtimeDeps = [
glib
gtk4
libadwaita
];
executables = [ "NickvisionTagger.GNOME" ];
postInstall = ''
substituteInPlace NickvisionTagger.Shared/Linux/org.nickvision.tagger.desktop.in --replace '@EXEC@' "NickvisionTagger.GNOME"
install -Dm444 NickvisionTagger.Shared/Resources/org.nickvision.tagger.svg -t $out/share/icons/hicolor/scalable/apps/
install -Dm444 NickvisionTagger.Shared/Resources/org.nickvision.tagger-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/
install -Dm444 NickvisionTagger.Shared/Linux/org.nickvision.tagger.desktop.in -T $out/share/applications/org.nickvision.tagger.desktop
'';
meta = with lib; {
description = "Easy-to-use music tag (metadata) editor";
homepage = "https://github.com/NickvisionApps/Tagger";
mainProgram = "NickvisionTagger.GNOME";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [
zendo
ratcornu
];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
which,
pkg-config,
mono,
}:
stdenv.mkDerivation rec {
pname = "taglib-sharp";
version = "2.1.0.0";
src = fetchFromGitHub {
owner = "mono";
repo = "taglib-sharp";
rev = "taglib-sharp-${version}";
sha256 = "12pk4z6ag8w7kj6vzplrlasq5lwddxrww1w1ya5ivxrfki15h5cp";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
which
];
buildInputs = [ mono ];
dontStrip = true;
configureFlags = [ "--disable-docs" ];
meta = with lib; {
description = "Library for reading and writing metadata in media files";
homepage = "https://github.com/mono/taglib-sharp";
platforms = platforms.linux;
license = licenses.lgpl21;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
utf8cpp,
zlib,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taglib";
version = "2.1.1";
src = fetchFromGitHub {
owner = "taglib";
repo = "taglib";
rev = "v${finalAttrs.version}";
hash = "sha256-pzsjZgtr9icfXWxsZoA5GXf9k3gh92DzJRcp87T0PVQ=";
};
strictDeps = true;
nativeBuildInputs = [ cmake ];
buildInputs = [
zlib
utf8cpp
];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = {
homepage = "https://taglib.org/";
description = "Library for reading and editing audio file metadata";
mainProgram = "taglib-config";
longDescription = ''
TagLib is a library for reading and editing the meta-data of several
popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3
files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC,
Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files.
'';
license = with lib.licenses; [
lgpl21Only
mpl11
];
maintainers = with lib.maintainers; [ ttuegel ];
pkgConfigModules = [
"taglib"
"taglib_c"
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
zlib,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taglib";
version = "1.13.1";
src = fetchFromGitHub {
owner = "taglib";
repo = "taglib";
rev = "v${finalAttrs.version}";
hash = "sha256-QX0EpHGT36UsgIfRf5iALnwxe0jjLpZvCTbk8vSMFF4=";
};
patches = [
(fetchpatch {
name = "taglib-fix-cmake-4.patch";
url = "https://github.com/taglib/taglib/commit/967aaf7af2f4aa2e9fed0edb2cbaca98b737eebe.patch";
hash = "sha256-GeowBwspGAmrjALaIgEgSR9uUuClKAkS/cwZ2FHltl4=";
})
];
strictDeps = true;
nativeBuildInputs = [ cmake ];
buildInputs = [ zlib ];
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
# Workaround unconditional ${prefix} until upstream is fixed:
# https://github.com/taglib/taglib/issues/1098
(lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib")
(lib.cmakeFeature "CMAKE_INSTALL_INCLUDEDIR" "include")
];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = {
homepage = "https://taglib.org/";
description = "Library for reading and editing audio file metadata";
mainProgram = "taglib-config";
longDescription = ''
TagLib is a library for reading and editing the meta-data of several
popular audio formats. Currently it supports both ID3v1 and ID3v2 for MP3
files, Ogg Vorbis comments and ID3 tags and Vorbis comments in FLAC, MPC,
Speex, WavPack, TrueAudio, WAV, AIFF, MP4 and ASF files.
'';
license = with lib.licenses; [
lgpl21Only
mpl11
];
maintainers = with lib.maintainers; [ ttuegel ];
pkgConfigModules = [
"taglib"
"taglib_c"
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
cmake,
taglib,
zlib,
}:
stdenv.mkDerivation rec {
pname = "taglib-extras";
version = "1.0.1";
src = fetchurl {
url = "https://download.kde.org/stable/taglib-extras/${version}/src/taglib-extras-${version}.tar.gz";
sha256 = "0cln49ws9svvvals5fzxjxlzqm0fzjfymn7yfp4jfcjz655nnm7y";
};
patches = [
(fetchurl {
name = "2001-taglib-extras-Fix-taglib-2.x-compat.patch";
url = "https://aur.archlinux.org/cgit/aur.git/plain/taglib-2.0.diff?h=taglib-extras&id=5826657b841b138c501e0633d1c9333fe9197b00";
hash = "sha256-yhme2KcIS5SPXz+mx/R2OiLV57WHz6WW8LJtYab4h5I=";
})
];
buildInputs = [ taglib ];
nativeBuildInputs = [
cmake
zlib
];
cmakeFlags = [ (lib.strings.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.5") ];
# Workaround for upstream bug https://bugs.kde.org/show_bug.cgi?id=357181
preConfigure = ''
sed -i -e 's/STRLESS/VERSION_LESS/g' cmake/modules/FindTaglib.cmake
'';
meta = with lib; {
description = "Additional taglib plugins";
mainProgram = "taglib-extras-config";
platforms = platforms.unix;
license = licenses.lgpl2;
};
}

View File

@@ -0,0 +1,40 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
cpp-utilities,
zlib,
isocodes,
}:
stdenv.mkDerivation rec {
pname = "tagparser";
version = "12.5.1";
src = fetchFromGitHub {
owner = "Martchus";
repo = "tagparser";
rev = "v${version}";
hash = "sha256-i9WJcdMvPg6Hg6auyPa9dwgtd7Ihte2oPLUImRelO50=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
cpp-utilities
zlib
];
cmakeFlags = [
"-DLANGUAGE_FILE_ISO_639_2=${isocodes}/share/iso-codes/json/iso_639-2.json"
];
meta = with lib; {
homepage = "https://github.com/Martchus/tagparser";
description = "C++ library for reading and writing MP4/M4A/AAC (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags";
license = licenses.gpl2;
maintainers = [ maintainers.matthiasbeyer ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "tagref";
version = "1.10.0";
src = fetchFromGitHub {
owner = "stepchowfun";
repo = "tagref";
rev = "v${version}";
sha256 = "sha256-ANQxW5Qznu2JbiazFElB1sxpX4BwPgk6SVGgYpJ6DUw=";
};
cargoHash = "sha256-XQ0/J8o9yqEGWH1Cy5VDkpsK60SS6JhYxMNsI08uI6U=";
meta = with lib; {
description = "Manage cross-references in your code";
homepage = "https://github.com/stepchowfun/tagref";
license = licenses.mit;
maintainers = [ maintainers.yusdacra ];
platforms = platforms.unix;
mainProgram = "tagref";
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
xterm,
coreutils,
}:
stdenv.mkDerivation {
pname = "tagtime";
version = "2018-09-02";
src = fetchFromGitHub {
owner = "tagtime";
repo = "TagTime";
rev = "59343e2cbe451eb16109e782c194ccbd0ee4196d";
sha256 = "1xpmra3f9618b0gajfxqh061r4phkiklvcgpglsyx82bhmgf9n1f";
};
buildInputs = [
perl
];
installPhase = ''
runHook preInstall
mkdir -p $out/{libexec,bin}
# We dont support a config file for now,
# since its not entirely clear how to split nix-set paths
# from the actual config options.
for pl in *.pl; do
substituteInPlace "$pl" \
--replace 'require "$ENV{HOME}/.tagtimerc";' \
'require "${placeholder "out"}/libexec/settings.pl";'
done;
install tagtimed.pl $out/bin/tagtimed
substituteInPlace util.pl \
--replace '/usr/bin/touch' \
'${coreutils}/bin/touch' \
--replace '/bin/rm -f $lockf' \
'${coreutils}/bin/rm -f $lockf' \
--replace '$lockf = "''${path}tagtime.lock";' \
'mkdir "$ENV{HOME}/.cache/tagtime";
$lockf = "$ENV{HOME}/.cache/tagtime/tagtime.lock";'
mv *.pl $out/libexec/
mv template.tsk $out/libexec/
# set the default template arguments to sane defaults.
substitute settings.pl.template $out/libexec/settings.pl \
--replace '"__USER__"' \
'getlogin()' \
--replace '"__PATH__"' \
'"${placeholder "out"}/libexec/"' \
--replace '$logf = "$path$usr.log";' \
'mkdir "$ENV{HOME}/.local/share/tagtime";
$logf = "$ENV{HOME}/.local/share/tagtime/pings.log";' \
--replace '"__ED__ +"' \
'$ENV{"EDITOR"}' \
--replace '"__XT__"' \
'"${xterm}/bin/xterm"'
runHook postInstall
'';
meta = {
description = "Stochastic Time Tracking for Space Cadets";
longDescription = ''
To determine how you spend your time, TagTime literally randomly samples
you. At random times it pops up and asks what you're doing right at that
moment. You answer with tags.
See https://messymatters.com/tagtime for the whole story.
[maintainers note]: This is the original perl script implementation.
'';
homepage = "https://messymatters.com/tagtime/";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.Profpatsch ];
mainProgram = "tagtimed";
};
}

View File

@@ -0,0 +1,53 @@
{
stdenv,
lib,
fetchFromGitHub,
pkg-config,
cmake,
libyaml,
jansson,
libvorbis,
taglib,
zlib,
}:
stdenv.mkDerivation rec {
pname = "tagutil";
version = "3.1";
src = fetchFromGitHub {
owner = "kaworu";
repo = "tagutil";
rev = "v${version}";
sha256 = "sha256-oY1aGl5CKVtpOfh8Wskio/huWYMiPuxWPqxlooTutcw=";
};
sourceRoot = "${src.name}/src";
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
libvorbis
libyaml
jansson
taglib
zlib
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace "-o aslr" ""
'';
meta = with lib; {
description = "Scriptable music files tags tool and editor";
homepage = "https://github.com/kaworu/tagutil";
license = licenses.bsd2;
maintainers = [ ];
platforms = platforms.linux;
mainProgram = "tagutil";
};
}

View File

@@ -0,0 +1,174 @@
{
lib,
python3,
fetchFromGitHub,
texinfo,
versionCheckHook,
}:
let
python = python3.override {
self = python;
packageOverrides = self: super: {
# tahoe-lafs is incompatible with magic-wormhole >= 0.19.0
# TODO: unpin, when https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4180 is fixed
magic-wormhole = super.magic-wormhole.overridePythonAttrs (oldAttrs: rec {
version = "0.18.0";
src = fetchFromGitHub {
owner = "magic-wormhole";
repo = "magic-wormhole";
tag = version;
hash = "sha256-FQ7m6hkJcFZaE+ptDALq/gijn/RcAM1Zvzi2+xpoXBU=";
};
nativeCheckInputs = lib.filter (
input: (input.pname or null) != "pytest-twisted"
) oldAttrs.nativeCheckInputs;
doCheck = false;
});
};
};
python3Packages = python.pkgs;
in
python3Packages.buildPythonApplication rec {
pname = "tahoe-lafs";
version = "1.20.0";
pyproject = true;
src = fetchFromGitHub {
owner = "tahoe-lafs";
repo = "tahoe-lafs";
tag = "tahoe-lafs-${version}";
hash = "sha256-9qaL4GmdjClviKTnwAxaTywvJChQ5cVVgWs1IkFxhIY=";
};
outputs = [
"out"
"doc"
"info"
];
# Remove broken and expensive tests.
preConfigure = ''
(
cd src/allmydata/test
# Buggy?
rm cli/test_create.py
# These require Tor and I2P.
rm test_connections.py test_iputil.py test_hung_server.py test_i2p_provider.py test_tor_provider.py
)
'';
build-system = with python3Packages; [
hatch-vcs
hatchling
];
nativeBuildInputs = with python3Packages; [
# docs
recommonmark
sphinx
sphinx-rtd-theme
texinfo
];
dependencies =
with python3Packages;
[
attrs
autobahn
cbor2
click
collections-extended
cryptography
distro
eliot
filelock
foolscap
future
klein
magic-wormhole
netifaces
psutil
pycddl
pyopenssl
pyrsistent
pyutil
pyyaml
six
treq
twisted
werkzeug
zfec
zope-interface
]
++ twisted.optional-dependencies.tls
++ twisted.optional-dependencies.conch;
# Install the documentation.
postInstall = ''
(
cd docs
make singlehtml
mkdir -p "$doc/share/doc/${pname}-${version}"
cp -rv _build/singlehtml/* "$doc/share/doc/${pname}-${version}"
make info
mkdir -p "$info/share/info"
cp -rv _build/texinfo/*.info "$info/share/info"
)
'';
nativeCheckInputs =
with python3Packages;
[
beautifulsoup4
fixtures
html5lib
hypothesis
mock
prometheus-client
testtools
twisted
]
++ [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/tahoe";
versionCheckProgramArg = "--version";
checkPhase = ''
runHook preCheck
runHook versionCheckHook
trial --rterrors allmydata
runHook postCheck
'';
meta = {
description = "Tahoe-LAFS, a decentralized, fault-tolerant, distributed storage system";
mainProgram = "tahoe";
longDescription = ''
Tahoe-LAFS is a secure, decentralized, fault-tolerant filesystem.
This filesystem is encrypted and spread over multiple peers in
such a way that it remains available even when some of the peers
are unavailable, malfunctioning, or malicious.
'';
homepage = "https://tahoe-lafs.org/";
license = [
lib.licenses.gpl2Plus # or
{
fullName = "Transitive Grace Period Public Licence version 1.0";
url = "https://github.com/tahoe-lafs/tahoe-lafs/blob/master/COPYING.TGPPL.rst";
}
];
maintainers = with lib.maintainers; [ MostAwesomeDude ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation {
pname = "tai-ahom";
version = "unstable-2015-07-06";
src = fetchurl {
url = "https://github.com/enabling-languages/tai-languages/raw/b57a3ea4589af69bb8e87c6c4bb7cd367b52f0b7/ahom/.fonts/ttf/.original/AhomUnicode_FromMartin.ttf";
hash = "sha256-U1vcVf/VgXhvK1f2Iw2JKkd2EzJgz7KbHAwnUanX8n4=";
};
dontUnpack = true;
installPhase = ''
runHook preInstall
install -Dm644 $src $out/share/fonts/truetype/AhomUnicode.ttf
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/enabling-languages/tai-languages";
description = "Unicode-compliant Tai Ahom font";
maintainers = with maintainers; [ mathnerd314 ];
license = licenses.ofl; # See font metadata
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
fetchFromGitHub,
fetchpatch,
davfs2,
cmake,
extra-cmake-modules,
stdenv,
pkg-config,
kdePackages,
}:
stdenv.mkDerivation rec {
pname = "tail-tray";
version = "0.2.23";
src = fetchFromGitHub {
owner = "SneWs";
repo = "tail-tray";
tag = "v${version}";
hash = "sha256-fnr7EheVG3G4oLAe9liAy5qCDED/7eL0mUiE0qXsco4=";
};
patches = [
# https://github.com/SneWs/tail-tray/pull/82
(fetchpatch {
name = "dont-use-absoulte-paths-in-desktop-file.patch";
url = "https://github.com/SneWs/tail-tray/commit/08aa4a4e061f21c2dcd07c94249f2eb15c4e4416.patch";
hash = "sha256-6YOJes40e2rgVabYns55M5h1FGyFG+gjSewCaXesT8U=";
})
];
nativeBuildInputs = with kdePackages; [
wrapQtAppsHook
qttools
cmake
extra-cmake-modules
pkg-config
];
buildInputs = with kdePackages; [
qtbase
davfs2
knotifyconfig
];
cmakeFlags = [
"-DKNOTIFICATIONS_ENABLED=ON"
"-DDAVFS_ENABLED=ON"
];
meta = {
description = "Tray icon to manage Tailscale";
homepage = "https://github.com/SneWs/tail-tray";
changelog = "https://github.com/SneWs/tail-tray/releases/tag/${src.tag}";
mainProgram = "tail-tray";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ Svenum ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
tailer,
}:
buildGoModule rec {
pname = "tailer";
version = "0.1.1";
src = fetchFromGitHub {
owner = "hionay";
repo = "tailer";
rev = "v${version}";
hash = "sha256-gPezz2ksqdCffgdAHwU2NMTar2glp5YGfA5C+tMYPtE=";
};
vendorHash = "sha256-nQqSvfN+ed/g5VkbD6XhZNA1G3CGGfwFDdadJ5+WoD0=";
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
];
passthru.tests = {
version = testers.testVersion {
package = tailer;
};
};
meta = with lib; {
description = "CLI tool to insert lines when command output stops";
homepage = "https://github.com/hionay/tailer";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "tailer";
};
}

View File

@@ -0,0 +1,74 @@
{
stdenv,
lib,
rustPlatform,
cargo,
rustc,
pkg-config,
desktop-file-utils,
appstream-glib,
wrapGAppsHook4,
meson,
ninja,
libadwaita,
gtk4,
tuxedo-rs,
}:
let
src = tuxedo-rs.src;
sourceRoot = "${src.name}/tailor_gui";
pname = "tailor_gui";
version = "0.2.3";
in
stdenv.mkDerivation {
inherit
src
sourceRoot
pname
version
;
cargoDeps = rustPlatform.fetchCargoVendor {
inherit
pname
version
src
sourceRoot
;
hash = "sha256-9jMy23VD+C87hg/TMXGbzAoqx76dhVOkWcQNudSwsYA=";
};
nativeBuildInputs = [
rustPlatform.cargoSetupHook
pkg-config
desktop-file-utils
appstream-glib
wrapGAppsHook4
];
buildInputs = [
cargo
rustc
meson
ninja
libadwaita
gtk4
];
meta = with lib; {
description = "Rust GUI for interacting with hardware from TUXEDO Computers";
mainProgram = "tailor_gui";
longDescription = ''
An alternative to the TUXEDO Control Center (https://www.tuxedocomputers.com/en/TUXEDO-Control-Center.tuxedo),
written in Rust.
'';
homepage = "https://github.com/AaronErhardt/tuxedo-rs";
license = licenses.gpl2Plus;
maintainers = with maintainers; [
mrcjkb
xaverdh
];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
tailscale,
buildGoModule,
}:
buildGoModule {
pname = "tailscale-gitops-pusher";
inherit (tailscale) version;
# It's hosted in the `tailscale` monorepo.
inherit (tailscale) src vendorHash;
env = {
inherit (tailscale) CGO_ENABLED;
};
subPackages = [
"cmd/gitops-pusher"
];
ldflags = [
"-w"
"-s"
"-X tailscale.com/version.longStamp=${tailscale.version}"
"-X tailscale.com/version.shortStamp=${tailscale.version}"
];
meta = {
homepage = "https://tailscale.com";
description = "Allows users to use a GitOps flow for managing Tailscale ACLs";
license = lib.licenses.bsd3;
mainProgram = "gitops-pusher";
teams = [ lib.teams.cyberus ];
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
buildGoModule,
tailscale,
}:
buildGoModule {
pname = "tailscale-nginx-auth";
inherit (tailscale) version src vendorHash;
env.CGO_ENABLED = 0;
subPackages = [ "cmd/nginx-auth" ];
ldflags = [
"-w"
"-s"
"-X tailscale.com/version.longStamp=${tailscale.version}"
"-X tailscale.com/version.shortStamp=${tailscale.version}"
];
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
mv $out/bin/nginx-auth $out/bin/tailscale.nginx-auth
sed -i -e "s#/usr/sbin#$out/bin#" ./cmd/nginx-auth/tailscale.nginx-auth.service
install -D -m0444 -t $out/lib/systemd/system ./cmd/nginx-auth/tailscale.nginx-auth.service
install -D -m0444 -t $out/lib/systemd/system ./cmd/nginx-auth/tailscale.nginx-auth.socket
'';
meta = {
homepage = "https://tailscale.com";
description = "Tool that allows users to use Tailscale Whois authentication with NGINX as a reverse proxy";
license = lib.licenses.bsd3;
mainProgram = "tailscale.nginx-auth";
maintainers = with lib.maintainers; [ phaer ];
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
pkg-config,
gtk3,
libayatana-appindicator,
}:
buildGoModule {
pname = "tailscale-systray";
version = "2022-10-19";
src = fetchFromGitHub {
owner = "mattn";
repo = "tailscale-systray";
rev = "e7f8893684e7b8779f34045ca90e5abe6df6056d";
sha256 = "sha256-3kozp6jq0xGllxoK2lGCNUahy/FvXyq11vNSxfDehKE=";
};
vendorHash = "sha256-YJ74SeZAMS+dXyoPhPTJ3L+5uL5bF8gumhMOqfvmlms=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gtk3
libayatana-appindicator
];
proxyVendor = true;
meta = with lib; {
description = "Tailscale systray";
homepage = "https://github.com/mattn/tailscale-systray";
license = licenses.mit;
maintainers = with maintainers; [ qbit ];
mainProgram = "tailscale-systray";
};
}

View File

@@ -0,0 +1,235 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
makeWrapper,
installShellFiles,
# runtime tooling - linux
getent,
iproute2,
iptables,
shadow,
procps,
# runtime tooling - darwin
lsof,
# check phase tooling - darwin
unixtools,
nixosTests,
tailscale-nginx-auth,
}:
buildGoModule (finalAttrs: {
pname = "tailscale";
version = "1.88.3";
outputs = [
"out"
"derper"
];
src = fetchFromGitHub {
owner = "tailscale";
repo = "tailscale";
tag = "v${finalAttrs.version}";
hash = "sha256-gw4oexTyJGeBkCd07RQQdfY14xArgVIMDHKrWu9K+9Q=";
};
vendorHash = "sha256-8aE6dWMkTLdWRD9WnLVSzpOQQh61voEnjZAJHtbGCSs=";
nativeBuildInputs = [
makeWrapper
installShellFiles
];
nativeCheckInputs = lib.optionals stdenv.hostPlatform.isDarwin [
unixtools.netstat
];
env.CGO_ENABLED = 0;
subPackages = [
"cmd/derper"
"cmd/derpprobe"
"cmd/tailscaled"
"cmd/tsidp"
"cmd/get-authkey"
];
excludedPackages = [
# Exclude integration tests which fail to work and require additional tooling
"tstest/integration"
];
ldflags = [
"-w"
"-s"
"-X tailscale.com/version.longStamp=${finalAttrs.version}"
"-X tailscale.com/version.shortStamp=${finalAttrs.version}"
];
tags = [
"ts_include_cli"
];
# Remove vendored tooling to ensure it's not used; also avoids some unnecessary tests
preBuild = ''
rm -rf ./tool
'';
# Tests start http servers which need to bind to local addresses:
# panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
__darwinAllowLocalNetworking = true;
preCheck = ''
# feed in all tests for testing
# subPackages above limits what is built to just what we
# want but also limits the tests
unset subPackages
# several tests hang, but keeping the file for tsnet/packet_filter_test.go
# packet_filter_test issue: https://github.com/tailscale/tailscale/issues/16051
substituteInPlace tsnet/tsnet_test.go \
--replace-fail 'func Test' 'func skippedTest'
'';
checkFlags =
let
skippedTests = [
# dislikes vendoring
"TestPackageDocs" # .
# tries to start tailscaled
"TestContainerBoot" # cmd/containerboot
# just part of a tool which generates yaml for k8s CRDs
# requires helm
"Test_generate" # cmd/k8s-operator/generate
# self reported potentially flakey test
"TestConnMemoryOverhead" # control/controlbase
# interacts with `/proc/net/route` and need a default route
"TestDefaultRouteInterface" # net/netmon
"TestRouteLinuxNetlink" # net/netmon
"TestGetRouteTable" # net/routetable
# remote udp call to 8.8.8.8
"TestDefaultInterfacePortable" # net/netutil
# launches an ssh server which works when provided openssh
# also requires executing commands but nixbld user has /noshell
"TestSSH" # ssh/tailssh
# wants users alice & ubuntu
"TestMultipleRecorders" # ssh/tailssh
"TestSSHAuthFlow" # ssh/tailssh
"TestSSHRecordingCancelsSessionsOnUploadFailure" # ssh/tailssh
"TestSSHRecordingNonInteractive" # ssh/tailssh
# test for a dev util which helps to fork golang.org/x/crypto/acme
# not necessary and fails to match
"TestSyncedToUpstream" # tempfork/acme
# flaky: https://github.com/tailscale/tailscale/issues/7030
"TestConcurrent"
# flaky: https://github.com/tailscale/tailscale/issues/11762
"TestTwoDevicePing"
# timeout 10m
"TestTaildropIntegration"
"TestTaildropIntegration_Fresh"
# context deadline exceeded
"TestPacketFilterFromNetmap"
# flaky: https://github.com/tailscale/tailscale/issues/15348
"TestSafeFuncHappyPath"
# Requires `go` to be installed with the `go tool` system which we don't use
"TestGoVersion"
# Fails because we vendor dependencies
"TestLicenseHeaders"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# syscall default route interface en0 differs from netstat
"TestLikelyHomeRouterIPSyscallExec" # net/netmon
# Even with __darwinAllowLocalNetworking this doesn't work.
# panic: write udp [::]:59507->127.0.0.1:50830: sendto: operation not permitted
"TestUDP" # net/socks5
# portlist_test.go:81: didn't find ephemeral port in p2 53643
"TestPoller" # portlist
# Fails only on Darwin, succeeds on other tested platforms.
"TestOnTailnetDefaultAutoUpdate"
# Fails due to UNIX domain socket path limits in the Nix build environment.
# Likely we could do something to make the paths shorter.
"TestProtocolQEMU"
"TestProtocolUnixDgram"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
postInstall = ''
ln -s $out/bin/tailscaled $out/bin/tailscale
moveToOutput "bin/derper" "$derper"
moveToOutput "bin/derpprobe" "$derper"
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
wrapProgram $out/bin/tailscaled \
--prefix PATH : ${
lib.makeBinPath [
# Uses lsof only on macOS to detect socket location
# See tailscale safesocket_darwin.go
lsof
]
}
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
wrapProgram $out/bin/tailscaled \
--prefix PATH : ${
lib.makeBinPath [
getent
iproute2
iptables
shadow
]
} \
--suffix PATH : ${lib.makeBinPath [ procps ]}
sed -i -e "s#/usr/sbin#$out/bin#" -e "/^EnvironmentFile/d" ./cmd/tailscaled/tailscaled.service
install -D -m0444 -t $out/lib/systemd/system ./cmd/tailscaled/tailscaled.service
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
local INSTALL="$out/bin/tailscale"
installShellCompletion --cmd tailscale \
--bash <($out/bin/tailscale completion bash) \
--fish <($out/bin/tailscale completion fish) \
--zsh <($out/bin/tailscale completion zsh)
'';
passthru.tests = {
inherit (nixosTests) headscale;
inherit tailscale-nginx-auth;
};
meta = {
homepage = "https://tailscale.com";
description = "Node agent for Tailscale, a mesh VPN built on WireGuard";
changelog = "https://tailscale.com/changelog#client";
license = lib.licenses.bsd3;
mainProgram = "tailscale";
maintainers = with lib.maintainers; [
mbaillie
jk
mfrw
philiptaron
pyrox0
ryan4yin
];
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "tailscalesd";
version = "0.3.0";
src = fetchFromGitHub {
owner = "cfunkhouser";
repo = "tailscalesd";
rev = "v${version}";
hash = "sha256-OcvLVsPtAIaGTxk5SKNme0+i0PsDc8uY/sDcM/L5yqU=";
};
vendorHash = "sha256-cBHAo2RL7Q6TJbv1QYrescMFwbSUnGlOmTqqt8CZ/qc=";
meta = {
description = "Prometheus Service Discovery for Tailscale";
changelog = "https://github.com/cfunkhouser/tailscalesd/releases/tag/v${version}";
homepage = "https://github.com/cfunkhouser/tailscalesd";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ SuperSandro2000 ];
mainProgram = "tailscalesd";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
rustPlatform,
fetchFromGitHub,
stdenv,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tailspin";
version = "5.5.0";
src = fetchFromGitHub {
owner = "bensadeh";
repo = "tailspin";
tag = finalAttrs.version;
hash = "sha256-coatx8Ud6iLnXvr+/X9hUEe3+0j9jnP5N3+aHQ+eWV8=";
};
cargoHash = "sha256-7N/vkhytkDF2ef0T6RJv8YzCpjzi+hjg061Uz9dyEM0=";
postPatch = ''
substituteInPlace tests/utils.rs --replace-fail \
'target/debug' "target/${stdenv.hostPlatform.rust.rustcTargetSpec}/$cargoCheckType"
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/tspin";
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Log file highlighter";
homepage = "https://github.com/bensadeh/tailspin";
changelog = "https://github.com/bensadeh/tailspin/blob/${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dit7ya ];
mainProgram = "tspin";
};
})

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchFromGitHub,
nodejs,
pnpm_9,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tailwindcss-language-server";
version = "0.14.26";
src = fetchFromGitHub {
owner = "tailwindlabs";
repo = "tailwindcss-intellisense";
tag = "v${finalAttrs.version}";
hash = "sha256-XXRWxN+1fOuVULh+ZE+XRRBaoRzhCpw7n8SkBIorG9A=";
};
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs)
pname
version
src
pnpmWorkspaces
;
fetcherVersion = 1;
hash = "sha256-SUEq20gZCiTDkFuNgMc5McHBPgW++8P9Q1MJb7a7pY8=";
};
nativeBuildInputs = [
pnpm_9.configHook
];
buildInputs = [
nodejs
];
pnpmWorkspaces = [
"@tailwindcss/language-server..."
];
# Must build the "@tailwindcss/language-service" package. Dependency is linked via workspace by "pnpm"
# https://github.com/tailwindlabs/tailwindcss-intellisense/blob/v0.14.24/pnpm-lock.yaml#L71
buildPhase = ''
runHook preBuild
pnpm --filter "@tailwindcss/language-server..." build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/tailwindcss-language-server}
cp -r {packages,node_modules} $out/lib/tailwindcss-language-server
chmod +x $out/lib/tailwindcss-language-server/packages/tailwindcss-language-server/bin/tailwindcss-language-server
ln -s $out/lib/tailwindcss-language-server/packages/tailwindcss-language-server/bin/tailwindcss-language-server $out/bin/tailwindcss-language-server
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Tailwind CSS Language Server";
homepage = "https://github.com/tailwindlabs/tailwindcss-intellisense";
changelog = "https://github.com/tailwindlabs/tailwindcss-intellisense/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ happysalada ];
mainProgram = "tailwindcss-language-server";
platforms = nodejs.meta.platforms;
};
})

View File

@@ -0,0 +1 @@
{ tailwindcss_3 }: tailwindcss_3

View File

@@ -0,0 +1,67 @@
{
lib,
fetchurl,
stdenv,
runCommand,
}:
let
inherit (stdenv.hostPlatform) system;
throwSystem = throw "tailwindcss has not been packaged for ${system} yet.";
plat =
{
aarch64-darwin = "macos-arm64";
aarch64-linux = "linux-arm64";
armv7l-linux = "linux-armv7";
x86_64-darwin = "macos-x64";
x86_64-linux = "linux-x64";
}
.${system} or throwSystem;
hash =
{
aarch64-darwin = "sha256-odDHmFdZrMygvxLlGsHcvw9s8v/7Yubg9i0JHEd6EKM=";
aarch64-linux = "sha256-abE3i4EzGS19L+sSoRb6EtA1WU9Y2z7/IVh55K2M85s=";
armv7l-linux = "sha256-cE59ka+6bh9jCImv0NfbNrRjTmKFEswUHVBKW+riiGA=";
x86_64-darwin = "sha256-bL2tdL53bAh/+l6aBXUSxUiY+f6IKNM2IhLf4y/JM6M=";
x86_64-linux = "sha256-fST3+hkdIZO3jNX1pCpgk+FECVIZCFKfQtgLEf3h8dQ=";
}
.${system} or throwSystem;
in
stdenv.mkDerivation (finalAttrs: {
pname = "tailwindcss_3";
version = "3.4.17";
src = fetchurl {
url = "https://github.com/tailwindlabs/tailwindcss/releases/download/v${finalAttrs.version}/tailwindcss-${plat}";
inherit hash;
};
dontUnpack = true;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ${finalAttrs.src} $out/bin/tailwindcss
chmod 755 $out/bin/tailwindcss
runHook postInstall
'';
passthru.tests.helptext = runCommand "tailwindcss-test-helptext" { } ''
${lib.getExe finalAttrs.finalPackage} --help > $out
'';
passthru.updateScript = ./update.sh;
meta = with lib; {
description = "Command-line tool for the CSS framework with composable CSS classes, standalone CLI";
homepage = "https://tailwindcss.com/blog/standalone-cli";
license = licenses.mit;
sourceProvenance = [ sourceTypes.binaryNativeCode ];
maintainers = [ maintainers.adamcstephens ];
mainProgram = "tailwindcss";
platforms = platforms.darwin ++ platforms.linux;
};
})

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p common-updater-scripts gnused jq nix-prefetch
set -eou pipefail
ROOT="$(dirname "$(readlink -f "$0")")"
CURRENT_VERSION=$(nix-instantiate --eval --strict --json -A tailwindcss_3.version . | jq -r .)
LATEST_VERSION=$(list-git-tags --url=https://github.com/tailwindlabs/tailwindcss | rg 'v3[0-9\.]*$' | sed -e 's/^v//' | sort -V | tail -n 1)
sed -i "s/version = \".*\"/version = \"${LATEST_VERSION}\"/" "$ROOT/package.nix"
if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
echo "tailwindcss_3 already at latest version $CURRENT_VERSION, exiting"
exit 0
fi
function updatePlatform() {
NIXPLAT=$1
TAILWINDPLAT=$2
echo "Updating tailwindcss_3 for $NIXPLAT"
URL="https://github.com/tailwindlabs/tailwindcss/releases/download/v${LATEST_VERSION}/tailwindcss-${TAILWINDPLAT}"
HASH=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$URL")")
sed -i "s,$NIXPLAT = \"sha256.*\",$NIXPLAT = \"${HASH}\"," "$ROOT/package.nix"
}
updatePlatform aarch64-darwin macos-arm64
updatePlatform aarch64-linux linux-arm64
updatePlatform armv7l-linux linux-armv7
updatePlatform x86_64-darwin macos-x64
updatePlatform x86_64-linux linux-x64

View File

@@ -0,0 +1,80 @@
{
lib,
stdenv,
fetchurl,
versionCheckHook,
autoPatchelfHook,
makeWrapper,
}:
let
version = "4.1.14";
inherit (stdenv.hostPlatform) system;
throwSystem = throw "tailwindcss has not been packaged for ${system} yet.";
plat =
{
aarch64-darwin = "macos-arm64";
aarch64-linux = "linux-arm64";
x86_64-darwin = "macos-x64";
x86_64-linux = "linux-x64";
}
.${system} or throwSystem;
hash =
{
aarch64-darwin = "sha256-5yK3UvUd74bULohrTBFx8tCaS+GnSHoKUeSv+OdgPOM=";
aarch64-linux = "sha256-MUlB9fbhQ+dOdAxYetH7qu3lRiVy3TMLvgk35hHpZts=";
x86_64-darwin = "sha256-Z7JbYQP6dndjflpd4zJ/7DM12jFtkNP9saTNcr2kHAo=";
x86_64-linux = "sha256-vDTDAbCAtua5jtJBGEGYM/lm9vNH5VaUXWVX02pEpW4=";
}
.${system} or throwSystem;
in
stdenv.mkDerivation {
inherit version;
pname = "tailwindcss_4";
src = fetchurl {
url =
"https://github.com/tailwindlabs/tailwindcss/releases/download/v${version}/tailwindcss-" + plat;
inherit hash;
};
nativeBuildInputs = lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook;
buildInputs = [ makeWrapper ];
dontUnpack = true;
dontBuild = true;
dontStrip = true;
installPhase = ''
mkdir -p $out/bin
install -m755 $src $out/bin/tailwindcss
'';
# libstdc++.so.6 for @parcel/watcher
postFixup = ''
wrapProgram $out/bin/tailwindcss --prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [ stdenv.cc.cc.lib ]
}
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/tailwindcss";
versionCheckProgramArg = "--help";
passthru.updateScript = ./update.sh;
meta = {
description = "Command-line tool for the CSS framework with composable CSS classes, standalone v4 CLI";
homepage = "https://tailwindcss.com/blog/tailwindcss-v4";
license = lib.licenses.mit;
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [
adamcstephens
adamjhf
];
mainProgram = "tailwindcss";
platforms = lib.platforms.darwin ++ lib.platforms.linux;
};
}

View File

@@ -0,0 +1,35 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused gawk nix-prefetch common-updater-scripts jq ripgrep
set -euo pipefail
ROOT="$(dirname "$(readlink -f "$0")")"
NIX_DRV="$ROOT/package.nix"
if [ ! -f "$NIX_DRV" ]; then
echo "ERROR: cannot find package.nix in $ROOT"
exit 1
fi
fetch_arch() {
VER="$1"; ARCH="$2"
URL="https://github.com/tailwindlabs/tailwindcss/releases/download/v${VER}/tailwindcss-${ARCH}"
nix-hash --to-sri --type sha256 "$(nix-prefetch-url --type sha256 "$URL")"
}
replace_hash() {
sed -i "s#$1 = \"sha256-.\{44\}\"#$1 = \"$2\"#" "$NIX_DRV"
}
VER=$(list-git-tags --url=https://github.com/tailwindlabs/tailwindcss | rg 'v4[0-9\.]*$' | sed -e 's/^v//' | sort -V | tail -n 1)
LINUX_X64_HASH=$(fetch_arch "$VER" "linux-x64")
LINUX_AARCH64_HASH=$(fetch_arch "$VER" "linux-arm64")
DARWIN_X64_HASH=$(fetch_arch "$VER" "macos-x64")
DARWIN_AARCH64_HASH=$(fetch_arch "$VER" "macos-arm64")
sed -i "s/version = \".*\"/version = \"$VER\"/" "$NIX_DRV"
replace_hash "x86_64-linux" "$LINUX_X64_HASH"
replace_hash "aarch64-linux" "$LINUX_AARCH64_HASH"
replace_hash "x86_64-darwin" "$DARWIN_X64_HASH"
replace_hash "aarch64-darwin" "$DARWIN_AARCH64_HASH"

View File

@@ -0,0 +1,112 @@
{
lib,
stdenv,
fetchFromGitHub,
# Build depends
docutils,
meson,
ninja,
pkg-config,
python3Packages,
opusfile,
openssl,
gamemode,
shaderc,
makeWrapper,
# Runtime depends
glfw,
sdl3,
SDL2_mixer,
cglm,
freetype,
libpng,
libwebp,
zlib,
zstd,
spirv-cross,
mimalloc,
gamemodeSupport ? stdenv.hostPlatform.isLinux,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taisei";
version = "1.4.4";
src = fetchFromGitHub {
owner = "taisei-project";
repo = "taisei";
tag = "v${finalAttrs.version}";
hash = "sha256-Cs66kyNSVjUZUH+ddZGjFwSUQtwqX4uuGQh+ZLv6N6o=";
fetchSubmodules = true;
};
nativeBuildInputs = [
docutils
meson
ninja
pkg-config
python3Packages.python
python3Packages.zstandard
shaderc
makeWrapper
];
buildInputs = [
glfw
sdl3
SDL2_mixer
cglm
freetype
libpng
libwebp
zlib
zstd
opusfile
openssl
spirv-cross
mimalloc
]
++ lib.optional gamemodeSupport gamemode;
mesonFlags = [
(lib.mesonBool "b_lto" false)
(lib.mesonEnable "install_macos_bundle" false)
(lib.mesonEnable "install_relocatable" false)
(lib.mesonEnable "shader_transpiler" false)
(lib.mesonEnable "shader_transpiler_dxbc" false)
(lib.mesonEnable "gamemode" gamemodeSupport)
(lib.mesonEnable "package_data" false)
(lib.mesonEnable "vfs_zip" false)
];
preConfigure = ''
patchShebangs .
'';
postInstall = lib.optionalString gamemodeSupport ''
wrapProgram $out/bin/taisei \
--set LD_LIBRARY_PATH ${lib.makeLibraryPath [ gamemode ]}
'';
strictDeps = true;
meta = {
description = "Free and open-source Touhou Project clone and fangame";
mainProgram = "taisei";
longDescription = ''
Taisei is an open clone of the Tōhō Project series. Tōhō is a one-man
project of shoot-em-up games set in an isolated world full of Japanese
folklore.
'';
homepage = "https://taisei-project.org/";
license = with lib.licenses; [
mit
cc-by-40
];
maintainers = with lib.maintainers; [
lambda-11235
Gliczy
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,47 @@
{
lib,
rustPlatform,
fetchFromGitHub,
fetchpatch2,
pkg-config,
ncurses,
openssl,
}:
rustPlatform.buildRustPackage {
pname = "taizen";
version = "0-unstable-2023-06-05";
src = fetchFromGitHub {
owner = "oppiliappan";
repo = "taizen";
rev = "5486cd4f4c5aa4e0abbcee180ad2ec22839abd31";
hash = "sha256-pGcD3+3Ds3U8NuNySaDnz0zzAvZlSDte1jRPdM5qrZA=";
};
cargoPatches = [
# update cargo dependencies upstreamed: https://github.com/oppiliappan/taizen/pull/27
(fetchpatch2 {
name = "update-cargo-lock.patch";
url = "https://github.com/oppiliappan/taizen/commit/104a1663268623e9ded45afaf2fe98c9c42b7b21.patch";
hash = "sha256-ujsr7MjZWEu+2mijVH1aqtTJXKZC4m5vl73Jre9XHbU=";
})
];
cargoHash = "sha256-kK9na2Pk3Hl4TYYVVUfeBv6DDDkrD7mIv7eVHXkS5QY=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
ncurses
openssl
];
meta = with lib; {
description = "Curses-based mediawiki browser";
homepage = "https://github.com/oppiliappan/taizen";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "taizen";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation rec {
pname = "takao";
version = "00303.01";
src = fetchurl {
url = "mirror://ubuntu/pool/universe/f/fonts-${pname}/fonts-${pname}_${version}.orig.tar.gz";
hash = "sha256-0wjHNv1yStp0q9D0WfwjgUYoUKcCrXA5jFO8PEVgq5k=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts
cp *.ttf $out/share/fonts
runHook postInstall
'';
meta = with lib; {
description = "Japanese TrueType Gothic, P Gothic, Mincho, P Mincho fonts";
homepage = "https://launchpad.net/takao-fonts";
license = licenses.ipa;
maintainers = with lib.maintainers; [ serge ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
autoreconfHook,
fetchFromGitLab,
perl,
buildPackages,
}:
stdenv.mkDerivation {
version = "3.7.7";
pname = "taktuk";
nativeBuildInputs = [
autoreconfHook
perl # pod2man pod2html
];
buildInputs = [ perl ];
src = fetchFromGitLab {
domain = "gitlab.inria.fr";
owner = "taktuk";
repo = "taktuk";
rev = "dcd763e389a414f540b43674cbc63752176f1ce3"; # does not tag releases
hash = "sha256-CerOBn1VDiKFLaW2WXv6wLxfcqy1H3dlF70lrequbog=";
};
preBuild = ''
substituteInPlace ./taktuk --replace-fail "/usr/bin/perl" "${lib.getExe buildPackages.perl}"
'';
enableParallelBuilding = true;
preFixup = ''
substituteInPlace ./taktuk --replace-fail "${lib.getExe buildPackages.perl}" "/usr/bin/env perl"
'';
meta = {
description = "Efficient, large scale, parallel remote execution of commands";
mainProgram = "taktuk";
longDescription = ''
TakTuk allows one to execute commands in parallel on a potentially large set
of remote nodes (using ssh to connect to each node). It is typically used
inside high performance computing clusters and grids. It uses an adaptive
algorithm to efficiently distribute the work and sets up an interconnection
network to transport commands and perform I/Os multiplexing. It doesn't
require any specific software on the nodes thanks to a self-propagation
algorithm.'';
homepage = "https://taktuk.gitlabpages.inria.fr/";
changelog = "https://gitlab.inria.fr/taktuk/taktuk/-/blob/HEAD/ChangeLog";
license = lib.licenses.gpl2;
maintainers = [ lib.maintainers.bzizou ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,50 @@
{
fetchgit,
lib,
recutils,
buildGoModule,
}:
buildGoModule (finalAttrs: {
pname = "taldir";
version = "1.0.5";
src = fetchgit {
url = "https://git.taler.net/taldir.git";
tag = "v${finalAttrs.version}";
hash = "sha256-ZKNkMV0IV6E+yCQeabGXpIQclx1S4YEgFn4whGXTaks=";
};
vendorHash = "sha256-QCwakJTpRP7VT69EzQeInCCGBuNu3WsNCytnQcBdKQw=";
nativeBuildInputs = [
recutils
];
# From Makefile
preBuild = ''
mkdir -p internal/gana
pushd third_party/gana/gnu-taler-error-codes
make taler_error_codes.go
popd
cp third_party/gana/gnu-taler-error-codes/taler_error_codes.go internal/gana/
'';
subPackages = [
"cmd/taldir-cli"
"cmd/taldir-server"
];
# dial error (dial tcp [::1]:5432: connect: connection refused)
doCheck = false;
meta = {
homepage = "https://git.taler.net/taldir.git";
description = "Directory service to resolve wallet mailboxes by messenger addresses";
teams = with lib.teams; [ ngi ];
# themadbit will maintain after being added to maintainers
maintainers = [ ];
license = lib.licenses.agpl3Plus;
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
fetchCrate,
rustPlatform,
pkg-config,
openssl,
nix-update-script,
testers,
talecast,
}:
rustPlatform.buildRustPackage rec {
pname = "talecast";
version = "0.1.39";
src = fetchCrate {
inherit pname version;
hash = "sha256-RwB+X+i3CEcTyKac81he9/cT2aQ4M7AqgqSDBEvhFJU=";
};
cargoHash = "sha256-mRoFg1UUPCKWiPxZg+8o2+2K6R+88RI/pdO8OLM4jFk=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
openssl
];
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion { package = talecast; };
};
meta = {
description = "Simple CLI podcatcher";
homepage = "https://github.com/TBS1996/TaleCast";
license = lib.licenses.mit;
mainProgram = "talecast";
maintainers = with lib.maintainers; [
confusedalex
getchoo
];
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
lv2,
fftwFloat,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "talentedhack";
version = "1.86";
src = fetchFromGitHub {
owner = "jeremysalwen";
repo = "talentedhack";
rev = "v${version}";
sha256 = "0kwvayalysmk7y49jq0k16al252md8d45z58hphzsksmyz6148bx";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
lv2
fftwFloat
];
# To avoid name clashes, plugins should be compiled with symbols hidden, except for `lv2_descriptor`:
preConfigure = ''
sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
'';
installPhase = ''
d=$out/lib/lv2/talentedhack.lv2
mkdir -p $d
cp *.so *.ttl $d
'';
meta = with lib; {
homepage = "https://github.com/jeremysalwen/TalentedHack";
description = "LV2 port of Autotalent pitch correction plugin";
license = licenses.gpl3;
maintainers = [ maintainers.michalrus ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchgit,
autoreconfHook,
libgcrypt,
pkg-config,
texinfo,
curl,
gnunet,
jansson,
libgnurl,
libmicrohttpd,
libsodium,
libtool,
libpq,
taler-exchange,
taler-merchant,
runtimeShell,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taler-challenger";
version = "1.0.0";
src = fetchgit {
url = "https://git.taler.net/challenger.git";
tag = "v${finalAttrs.version}";
hash = "sha256-ZKRqNlva3LZCuAva7h6Wk2NIuHF3rReR+yNETqbCv1k=";
};
# https://git.taler.net/challenger.git/tree/bootstrap
preAutoreconf = ''
# Generate Makefile.am in contrib/
pushd contrib
rm -f Makefile.am
find wallet-core/challenger/ -type f -printf ' %p \\\n' | sort > Makefile.am.ext
# Remove extra '\' at the end of the file
truncate -s -2 Makefile.am.ext
cat Makefile.am.in Makefile.am.ext >> Makefile.am
# Prevent accidental editing of the generated Makefile.am
chmod -w Makefile.am
popd
'';
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
libgcrypt
pkg-config
texinfo
];
buildInputs = [
curl
gnunet
jansson
libgcrypt
libgnurl
libmicrohttpd
libpq
libsodium
libtool
taler-exchange
taler-merchant
];
preFixup = ''
substituteInPlace $out/bin/challenger-{dbconfig,send-post.sh} \
--replace-fail "/bin/bash" "${runtimeShell}"
'';
meta = {
description = "OAuth 2.0-based authentication service that validates user can receive messages at a certain address";
homepage = "https://git.taler.net/challenger.git";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ wegank ];
teams = with lib.teams; [ ngi ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,42 @@
{
lib,
rustPlatform,
fetchgit,
}:
rustPlatform.buildRustPackage {
pname = "taler-depolymerization";
version = "0-unstable-2024-06-17";
src = fetchgit {
url = "https://git.taler.net/depolymerization.git/";
rev = "a0d27ac3bba22d4934ca9f7b244b0d9e45bb484f";
hash = "sha256-HmQ/DPq/O6aODWms/bSsCVgBF7z246xxfYxiHrAkgYw=";
};
cargoHash = "sha256-P0VrXYbO4RD3cNTai2hfTksbiGldkwoYgZm+C5Jh/4Y=";
outputs = [
"out"
"doc"
];
postPatch = ''
# fix missing expression in test docs
substituteInPlace common/src/status.rs \
--replace-fail ' -> Requested' '() -> Requested'
'';
postInstall = ''
mkdir -p $doc/share/doc $out/share/examples
cp -R docs $doc/share/doc/taler-depolymerization
cp docs/*.conf $out/share/examples
'';
meta = {
description = "Wire gateway for Bitcoin/Ethereum";
homepage = "https://git.taler.net/depolymerization.git/";
license = lib.licenses.agpl3Only;
teams = [ lib.teams.ngi ];
};
}

View File

@@ -0,0 +1,75 @@
From 3ca51717bbb7643eb0629729d0680cca75ce34c8 Mon Sep 17 00:00:00 2001
From: eljamm <fedi.jamoussi@protonmail.ch>
Date: Wed, 14 Aug 2024 11:14:41 +0100
Subject: [PATCH] add TALER_TEMPLATING_init_path
The merchant uses `TALER_TEMPLATING_init` function from the exchange's
headers, which makes it harder to patch in the correct directory.
To circumvent this, a similar function that takes the templates path
directly is added.
---
src/include/taler_templating_lib.h | 9 +++++++++
src/templating/templating_api.c | 25 +++++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/src/include/taler_templating_lib.h b/src/include/taler_templating_lib.h
index 6af6db715..343004ef1 100644
--- a/src/include/taler_templating_lib.h
+++ b/src/include/taler_templating_lib.h
@@ -120,6 +120,16 @@ TALER_TEMPLATING_reply_error (struct MHD_Connection *connection,
enum GNUNET_GenericReturnValue
TALER_TEMPLATING_init (const char *subsystem);
+/**
+ * Preload templates from path.
+ *
+ * @param subsystem name of the subsystem, "merchant" or "exchange"
+ * @param path name of the absolute template path
+ * @return #GNUNET_OK on success
+ */
+enum GNUNET_GenericReturnValue
+TALER_TEMPLATING_init_path (const char *subsystem, const char *path);
+
/**
* Nicely shut down templating subsystem.
diff --git a/src/templating/templating_api.c b/src/templating/templating_api.c
index 88a17c682..a9afa2b70 100644
--- a/src/templating/templating_api.c
+++ b/src/templating/templating_api.c
@@ -506,6 +506,31 @@ TALER_TEMPLATING_init (const char *subsystem)
}
+enum GNUNET_GenericReturnValue
+TALER_TEMPLATING_init_path (const char *subsystem, const char *path)
+{
+ char *dn;
+ int ret;
+
+ {
+ GNUNET_asprintf (&dn,
+ "%s/%s/templates/",
+ path,
+ subsystem);
+ }
+ ret = GNUNET_DISK_directory_scan (dn,
+ &load_template,
+ NULL);
+ GNUNET_free (dn);
+ if (-1 == ret)
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
+ return GNUNET_OK;
+}
+
+
void
TALER_TEMPLATING_done (void)
{
--
2.45.2

View File

@@ -0,0 +1,134 @@
{
lib,
stdenv,
fetchgit,
curl,
gnunet,
jansson,
libgcrypt,
libmicrohttpd,
libsodium,
libunistring,
pkg-config,
libpq,
autoreconfHook,
python3,
recutils,
wget,
jq,
gettext,
texinfo,
libtool,
nixosTests,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taler-exchange";
version = "1.0.4";
src = fetchgit {
url = "https://git.taler.net/exchange.git";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-k2e9pzy7vSIjCVGOVif9ntYvLcvoJA6J63vB/lg3iwA=";
};
patches = [ ./0001-add-TALER_TEMPLATING_init_path.patch ];
nativeBuildInputs = [
autoreconfHook
recutils # recfix
pkg-config
python3.pkgs.jinja2
texinfo # makeinfo
# jq is necessary for some tests and is checked by configure script
jq
];
buildInputs = [
libgcrypt
libmicrohttpd
jansson
libsodium
libpq
libtool
curl
gettext
libunistring
];
strictDeps = true;
propagatedBuildInputs = [ gnunet ];
# From ./bootstrap
preAutoreconf = ''
./contrib/gana-generate.sh
pushd contrib
rm -f Makefile.am
{
echo 'dist_amlspapkgdata_DATA = \'
find wallet-core/aml-backoffice/ -type f | sort | awk '{print " " $1 " \\" }'
} >> Makefile.am.ext
# Remove extra '\' at the end of the file
truncate -s -2 Makefile.am.ext
{
echo ""
echo 'dist_kycspapkgdata_DATA = \'
find wallet-core/kyc/ -type f | sort | awk '{print " " $1 " \\" }'
} >> Makefile.am.ext
# Remove extra '\' at the end of the file
truncate -s -2 Makefile.am.ext
{
echo ""
echo 'dist_auditorspapkgdata_DATA = \'
find wallet-core/auditor-backoffice/ -type f | sort | awk '{print " " $1 " \\" }'
} >> Makefile.am.ext
# Remove extra '\' at the end of the file
truncate -s -2 Makefile.am.ext
cat Makefile.am.in Makefile.am.ext >> Makefile.am
# Prevent accidental editing of the generated Makefile.am
chmod -w Makefile.am
popd
'';
configureFlags = [
"ac_cv_path__libcurl_config=${lib.getDev curl}/bin/curl-config"
];
enableParallelBuilding = true;
doInstallCheck = true;
nativeCheckInputs = [
wget
curl
];
checkTarget = "check";
passthru.tests = nixosTests.taler.basic;
meta = {
description = "Exchange component for the GNU Taler electronic payment system";
longDescription = ''
Taler is an electronic payment system providing the ability to pay
anonymously using digital cash. Taler consists of a network protocol
definition (using a RESTful API over HTTP), an Exchange (which creates
digital coins), a Wallet (which allows customers to manage, store and
spend digital coins), and a Merchant website which allows customers to
spend their digital coins. Naturally, each Merchant is different, but
Taler includes code examples to help Merchants integrate Taler as a
payment system.
'';
homepage = "https://taler.net/";
changelog = "https://git.taler.net/exchange.git/tree/ChangeLog";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ astro ];
teams = with lib.teams; [ ngi ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchgit,
autoreconfHook,
pkg-config,
curl,
gnunet,
jansson,
libgcrypt,
libmicrohttpd,
libnfc,
libsodium,
qrencode,
taler-exchange,
taler-merchant,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taler-mdb";
version = "1.0.0";
src = fetchgit {
url = "https://git.taler.net/taler-mdb.git";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-AAFnF8bN2Pnhy8OZbgA6CRHBIC6iP785HpVjPEVu+IQ=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
curl
gnunet
jansson
libgcrypt
libmicrohttpd
libnfc
libsodium
qrencode
taler-exchange
taler-merchant
];
doCheck = true;
meta = {
homepage = "https://git.taler.net/taler-mdb.git";
description = "Sales integration with the Multi-Drop-Bus of Snack machines, NFC readers and QR code display";
license = lib.licenses.agpl3Plus;
teams = with lib.teams; [ ngi ];
maintainers = [ ];
mainProgram = "taler-mdb";
};
})

View File

@@ -0,0 +1,121 @@
{
lib,
stdenv,
fetchgit,
gnunet,
qrencode,
taler-exchange,
taler-wallet-core,
libtool,
pkg-config,
autoreconfHook,
makeWrapper,
jq,
libgcrypt,
texinfo,
curl,
nixosTests,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taler-merchant";
version = "1.0.1";
src = fetchgit {
url = "https://git.taler.net/merchant.git";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-H/JqMGLP0u68g/bMqsollAk6sKL73TCZ9no49psYST0=";
};
postUnpack = ''
ln -s ${taler-wallet-core}/spa.html $sourceRoot/contrib/
'';
# Use an absolute path for `templates` and `spa` directories, else a relative
# path to the `taler-exchange` package is used.
postPatch = ''
substituteInPlace src/backend/taler-merchant-httpd.c \
--replace-fail 'TALER_TEMPLATING_init (TALER_MERCHANT_project_data ())' "TALER_TEMPLATING_init_path (\"merchant\", \"$out/share/taler\")"
substituteInPlace src/backend/taler-merchant-httpd_spa.c \
--replace-fail 'GNUNET_DISK_directory_scan (dn,' "GNUNET_DISK_directory_scan (\"$out/share/taler/merchant/spa/\","
'';
nativeBuildInputs = [
pkg-config
autoreconfHook
makeWrapper
libgcrypt # AM_PATH_LIBGCRYPT
texinfo # makeinfo
];
buildInputs = taler-exchange.buildInputs ++ [
qrencode
taler-exchange
# for ltdl.h
libtool
];
strictDeps = true;
propagatedBuildInputs = [ gnunet ];
# From ./bootstrap
preAutoreconf = ''
pushd contrib
find wallet-core/backoffice/ -type f -printf ' %p \\\n' | sort > Makefile.am.ext
truncate -s -2 Makefile.am.ext
cat Makefile.am.in Makefile.am.ext >> Makefile.am
popd
'';
configureFlags = [
"ac_cv_path__libcurl_config=${lib.getDev curl}/bin/curl-config"
];
# NOTE: The executables that need database access fail to detect the
# postgresql library in `$out/lib/taler`, so we need to wrap them.
postInstall = ''
for exec in dbinit httpd webhook wirewatch depositcheck exchangekeyupdate; do
wrapProgram $out/bin/taler-merchant-$exec \
--prefix LD_LIBRARY_PATH : "$out/lib/taler"
done
'';
postFixup = ''
# - taler-merchant-dbinit expects `versioning.sql` under `share/taler/sql`
# - taler-merchant-httpd expects `share/taler/merchant/templates`
mkdir -p $out/share/taler/sql
ln -s $out/share/taler-merchant $out/share/taler/merchant
ln -s $out/share/taler-merchant/sql $out/share/taler/sql/merchant
'';
enableParallelBuilding = true;
doInstallCheck = true;
nativeCheckInputs = [ jq ];
checkTarget = "check";
passthru.tests = nixosTests.taler.basic;
meta = {
description = "Merchant component for the GNU Taler electronic payment system";
longDescription = ''
This is the GNU Taler merchant backend. It provides the logic that should run
at every GNU Taler merchant. The GNU Taler merchant is a RESTful backend that
can be used to setup orders and process payments. This component allows
merchants to receive payments without invading the customers' privacy. Of
course, this applies mostly for digital goods, as the merchant does not need
to know the customer's physical address.
'';
homepage = "https://taler.net/";
changelog = "https://git.taler.net/merchant.git/tree/ChangeLog";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ astro ];
teams = with lib.teams; [ ngi ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchgit,
autoreconfHook,
libgcrypt,
pkg-config,
curlWithGnuTls,
gnunet,
jansson,
libmicrohttpd,
libpq,
libsodium,
libtool,
taler-exchange,
taler-merchant,
runtimeShell,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taler-sync";
version = "1.0.0";
src = fetchgit {
url = "https://git.taler.net/sync.git";
tag = "v${finalAttrs.version}";
hash = "sha256-di+AgCCgOTvzR6Fberz1ISo6ZT+OsKikeNCU2HZHSz4=";
};
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
libgcrypt
pkg-config
];
buildInputs = [
curlWithGnuTls
gnunet
jansson
libgcrypt
libmicrohttpd
libpq
libsodium
libtool
taler-exchange
taler-merchant
];
preFixup = ''
substituteInPlace "$out/bin/sync-dbconfig" \
--replace-fail "/bin/bash" "${runtimeShell}"
'';
meta = {
description = "Backup and synchronization service";
homepage = "https://git.taler.net/sync.git";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ wegank ];
teams = with lib.teams; [ ngi ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchgit,
autoreconfHook,
pkg-config,
curl,
gnunet,
jansson,
libgcrypt,
libmicrohttpd,
libsodium,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taler-twister";
version = "1.0.0";
src = fetchgit {
url = "https://git.taler.net/twister.git";
tag = "v${finalAttrs.version}";
hash = "sha256-ir+kU9bCWwhqR88hmNHB5cm1DXOQowI5y6GdhWpX/L0=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
curl
gnunet
jansson
libgcrypt
libmicrohttpd
libsodium
];
doInstallCheck = true;
meta = {
homepage = "https://git.taler.net/twister.git";
description = "Fault injector for HTTP traffic";
teams = with lib.teams; [ ngi ];
maintainers = [ ];
license = lib.licenses.agpl3Plus;
mainProgram = "twister";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,116 @@
{
lib,
stdenv,
esbuild,
buildGoModule,
fetchFromGitHub,
fetchgit,
srcOnly,
removeReferencesTo,
nodejs_20,
pnpm_9,
python3,
gitMinimal,
jq,
zip,
}:
let
nodeSources = srcOnly nodejs_20;
esbuild' = esbuild.override {
buildGoModule =
args:
buildGoModule (
args
// rec {
version = "0.19.9";
src = fetchFromGitHub {
owner = "evanw";
repo = "esbuild";
rev = "v${version}";
hash = "sha256-GiQTB/P+7uVGZfUaeM7S/5lGvfHlTl/cFt7XbNfE0qw=";
};
vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ=";
}
);
};
customPython = python3.withPackages (p: [ p.setuptools ]);
in
stdenv.mkDerivation (finalAttrs: {
pname = "taler-wallet-core";
version = "1.0.12";
src = fetchgit {
url = "https://git.taler.net/taler-typescript-core.git";
tag = "v${finalAttrs.version}";
hash = "sha256-lTFiaIgkPw0FhrpYPwg5/MMl8Yo1MfkDPYEDSJ11rQ8=";
};
nativeBuildInputs = [
customPython
nodejs_20
pnpm_9.configHook
gitMinimal
jq
zip
];
pnpmDeps = pnpm_9.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-pLe5smsXdzSBgz/OYNO5FVEI2L6y/p+jMxEkzqUaX34=";
};
buildInputs = [ nodejs_20 ];
# Make a fake git repo with a commit.
# Without this, the package does not build.
postUnpack = ''
git init -b master
git config user.email "root@localhost"
git config user.name "root"
git commit --allow-empty -m "Initial commit"
'';
postPatch = ''
patchShebangs packages/*/*.mjs
substituteInPlace pnpm-lock.yaml \
--replace-fail "esbuild: 0.12.29" "esbuild: ${esbuild'.version}"
'';
preConfigure = ''
./bootstrap
'';
# After the pnpm configure, we need to build the binaries of all instances
# of better-sqlite3. It has a native part that it wants to build using a
# script which is disallowed.
# Adapted from mkYarnModules.
preBuild = ''
for f in $(find -path '*/node_modules/better-sqlite3' -type d); do
(cd "$f" && (
npm run build-release --offline --nodedir="${nodeSources}"
find build -type f -exec \
${lib.getExe removeReferencesTo} \
-t "${nodeSources}" {} \;
))
done
'';
postFixup = ''
# else it fails to find the python interpreter
patchShebangs --build $out/bin/taler-helper-sqlite3
'';
env.ESBUILD_BINARY_PATH = lib.getExe esbuild';
meta = {
homepage = "https://git.taler.net/wallet-core.git/";
description = "CLI wallet for GNU Taler written in TypeScript and Anastasis Web UI";
license = lib.licenses.gpl3Plus;
teams = [ lib.teams.ngi ];
platforms = lib.platforms.linux;
mainProgram = "taler-wallet-cli";
# ./configure doesn't understand --build / --host
broken = stdenv.buildPlatform != stdenv.hostPlatform;
};
})

View File

@@ -0,0 +1,60 @@
{
buildGoModule,
fetchFromGitHub,
installShellFiles,
lib,
stdenv,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "talhelper";
version = "3.0.37";
src = fetchFromGitHub {
owner = "budimanjojo";
repo = "talhelper";
tag = "v${finalAttrs.version}";
hash = "sha256-GWm2ZTBq+g9mF7KktI+A6Sec8iHzfTtGt59PZjPW2B0=";
};
vendorHash = "sha256-vqec4Hd+jLKDuiwdfweWonitX3g5Hot0COpU5GKrpbE=";
ldflags = [
"-s"
"-w"
"-X github.com/budimanjojo/talhelper/v3/cmd.version=v${finalAttrs.version}"
];
subPackages = [
"."
"./cmd"
];
nativeBuildInputs = [ installShellFiles ];
doInstallCheck = true;
nativeInstallCheckInputs = [
versionCheckHook
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd talhelper \
--bash <($out/bin/talhelper completion bash) \
--fish <($out/bin/talhelper completion fish) \
--zsh <($out/bin/talhelper completion zsh)
'';
meta = {
changelog = "https://github.com/budimanjojo/talhelper/releases/tag/v${finalAttrs.version}";
description = "Help creating Talos kubernetes cluster";
longDescription = ''
Talhelper is a helper tool to help creating Talos Linux cluster
in your GitOps repository.
'';
homepage = "https://github.com/budimanjojo/talhelper";
mainProgram = "talhelper";
maintainers = with lib.maintainers; [ madeddie ];
license = lib.licenses.bsd3;
};
})

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
gtk3,
gnome,
adwaita-icon-theme,
gdk-pixbuf,
librsvg,
libgnome-games-support,
gettext,
itstool,
libxml2,
wrapGAppsHook3,
meson,
ninja,
python3,
desktop-file-utils,
}:
stdenv.mkDerivation rec {
pname = "tali";
version = "40.9";
src = fetchurl {
url = "mirror://gnome/sources/tali/${lib.versions.major version}/tali-${version}.tar.xz";
hash = "sha256-+p7eNm8KcuTKpSGJw6sLEMG1aoDHiFsBZgJVjETc59M=";
};
nativeBuildInputs = [
meson
ninja
python3
desktop-file-utils
pkg-config
adwaita-icon-theme
libxml2
itstool
gettext
wrapGAppsHook3
];
buildInputs = [
gtk3
gdk-pixbuf
librsvg
libgnome-games-support
];
postPatch = ''
chmod +x build-aux/meson_post_install.py
patchShebangs build-aux/meson_post_install.py
'';
passthru = {
updateScript = gnome.updateScript { packageName = "tali"; };
};
meta = {
homepage = "https://gitlab.gnome.org/GNOME/tali";
changelog = "https://gitlab.gnome.org/GNOME/tali/-/blob/${version}/NEWS?ref_type=tags";
description = "Sort of poker with dice and less money";
mainProgram = "tali";
teams = [ lib.teams.gnome ];
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchurl,
}:
let
pname = "talkfilters";
version = "2.3.8";
in
stdenv.mkDerivation {
name = "${pname}-${version}";
src = fetchurl {
url = "http://www.hyperrealm.com/${pname}/${pname}-${version}.tar.gz";
sha256 = "19nc5vq4bnkjvhk8srqddzhcs93jyvpm9r6lzjzwc1mgf08yg0a6";
};
hardeningDisable = [ "format" ];
meta = {
description = "Converts English text into text that mimics a stereotyped or humorous dialect";
homepage = "https://www.hyperrealm.com/talkfilters/talkfilters.html";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ ikervagyok ];
platforms = with lib.platforms; unix;
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
fetchurl,
python3,
pkg-config,
readline,
libxslt,
libxcrypt,
docbook-xsl-nons,
docbook_xml_dtd_42,
fixDarwinDylibNames,
wafHook,
buildPackages,
}:
stdenv.mkDerivation rec {
pname = "talloc";
version = "2.4.3";
src = fetchurl {
url = "mirror://samba/talloc/${pname}-${version}.tar.gz";
sha256 = "sha256-3EbEC59GuzTdl/5B9Uiw6LJHt3qRhXZzPFKOg6vYVN0=";
};
nativeBuildInputs = [
pkg-config
python3
wafHook
docbook-xsl-nons
docbook_xml_dtd_42
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
fixDarwinDylibNames
];
buildInputs = [
python3
readline
libxslt
libxcrypt
];
# otherwise the configure script fails with
# PYTHONHASHSEED=1 missing! Don't use waf directly, use ./configure and make!
preConfigure = ''
export PKGCONFIG="$PKG_CONFIG"
export PYTHONHASHSEED=1
'';
wafPath = "buildtools/bin/waf";
wafConfigureFlags = [
"--enable-talloc-compat1"
"--bundled-libraries=NONE"
"--builtin-libraries=replace"
]
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--cross-compile"
"--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
];
# python-config from build Python gives incorrect values when cross-compiling.
# If python-config is not found, the build falls back to using the sysconfig
# module, which works correctly in all cases.
PYTHON_CONFIG = "/invalid";
# https://reviews.llvm.org/D135402
NIX_LDFLAGS = lib.optional (
stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"
) "--undefined-version";
# this must not be exported before the ConfigurePhase otherwise waf whines
preBuild = lib.optionalString stdenv.hostPlatform.isMusl ''
export NIX_CFLAGS_LINK="-no-pie -shared";
'';
postInstall = ''
${stdenv.cc.targetPrefix}ar q $out/lib/libtalloc.a bin/default/talloc.c.[0-9]*.o
'';
meta = with lib; {
description = "Hierarchical pool based memory allocator with destructors";
homepage = "https://tdb.samba.org/";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = [ maintainers.matthiasbeyer ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
}:
buildGoModule rec {
pname = "talosctl";
version = "1.11.2";
src = fetchFromGitHub {
owner = "siderolabs";
repo = "talos";
tag = "v${version}";
hash = "sha256-r78O/FdsfD29wM6fcbuwYea/b7J60iAdtrw4CEBM/mo=";
};
vendorHash = "sha256-T8lJjJfCLpQIsmCW/FQk/CJstyH6u/gNZ6R+COH909M=";
ldflags = [
"-s"
"-w"
];
env.GOWORK = "off";
subPackages = [ "cmd/talosctl" ];
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd talosctl \
--bash <($out/bin/talosctl completion bash) \
--fish <($out/bin/talosctl completion fish) \
--zsh <($out/bin/talosctl completion zsh)
'';
doCheck = false; # no tests
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "version";
meta = with lib; {
description = "CLI for out-of-band management of Kubernetes nodes created by Talos";
mainProgram = "talosctl";
homepage = "https://www.talos.dev/";
license = licenses.mpl20;
maintainers = with maintainers; [ flokli ];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
zip,
copyDesktopItems,
libpng,
SDL2,
SDL2_image,
# Optionally bundle a ROM file
rom ? null,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tamatool";
version = "0.1";
src = fetchFromGitHub {
owner = "jcrona";
repo = "tamatool";
tag = "v${finalAttrs.version}";
hash = "sha256-VDmpIBuMWg3TwfCf9J6/bi/DaWip6ESAQWvGh2SH+A8=";
fetchSubmodules = true;
};
# * Point to the installed rom and res directory
# * Tell the user to use --rom instead of telling them to place the rom in the
# program directory (it's immutable!)
postPatch = ''
substituteInPlace src/tamatool.c \
--replace '#define RES_PATH' "#define RES_PATH \"$out/share/tamatool/res\" //" \
--replace '#define ROM_PATH' "#define ROM_PATH \"$out/share/tamatool/rom.bin\" //" \
--replace '#define ROM_NOT_FOUND_MSG' '#define ROM_NOT_FOUND_MSG "You need to use the --rom option!" //'
'';
nativeBuildInputs = [
zip
copyDesktopItems
];
buildInputs = [
libpng
SDL2
SDL2_image
];
makeFlags = [
"-Clinux"
"VERSION=${finalAttrs.version}"
"CFLAGS+=-I${lib.getInclude SDL2}/include/SDL2"
"CFLAGS+=-I${SDL2_image}/include/SDL2"
"DIST_PATH=$(out)"
"CC=${stdenv.cc.targetPrefix}cc"
];
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = "-framework CoreFoundation";
};
desktopItems = [ "linux/tamatool.desktop" ];
installPhase = ''
runHook preInstall
install -Dm755 linux/tamatool $out/bin/tamatool
mkdir -p $out/share/tamatool
cp -r res $out/share/tamatool/res
install -Dm644 linux/tamatool.png $out/share/icons/hicolor/128x126/apps/tamatool.png
${lib.optionalString (rom != null) "install -Dm677 ${rom} $out/share/tamatool/rom.bin"}
runHook postInstall
'';
meta = with lib; {
description = "Cross-platform Tamagotchi P1 explorer";
homepage = "https://github.com/jcrona/tamatool";
license = licenses.gpl2Only;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
mainProgram = "tamatool";
};
})

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
faust2jaqt,
faust2lv2,
}:
stdenv.mkDerivation rec {
pname = "Tambura";
version = "1.0";
src = fetchFromGitHub {
owner = "olilarkin";
repo = "Tambura";
rev = "v${version}";
sha256 = "1w80cmiyzca1wirf5gypg3hcix1ky777id8wnd3k92mn1jf4a24y";
};
buildInputs = [
faust2jaqt
faust2lv2
];
dontWrapQtApps = true;
buildPhase = ''
faust2jaqt -vec -time -t 99999 Tambura.dsp
faust2lv2 -vec -time -gui -t 99999 Tambura.dsp
'';
installPhase = ''
mkdir -p $out/bin
for f in $(find . -executable -type f); do
cp $f $out/bin/
done
mkdir -p $out/lib/lv2
cp -r Tambura.lv2/ $out/lib/lv2
'';
meta = with lib; {
description = "FAUST patch inspired by the Indian Tambura/Tanpura - a four string drone instrument, known for its unique rich harmonic timbre";
homepage = "https://github.com/olilarkin/Tambura";
license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ];
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
lv2,
zita-resampler,
}:
stdenv.mkDerivation {
pname = "tamgamp.lv2";
version = "unstable-2020-06-14";
src = fetchFromGitHub {
owner = "sadko4u";
repo = "tamgamp.lv2";
rev = "426da74142fcb6b7687a35b2b1dda3392e171b92";
sha256 = "0dqsnim7v79rx13bkkh143gqz0xg26cpf6ya3mrwwprpf5hns2bp";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
lv2
zita-resampler
];
makeFlags = [ "PREFIX=$(out)" ];
enableParallelBuilding = true;
meta = with lib; {
homepage = "https://github.com/sadko4u/tamgamp.lv2";
description = "Guitar amplifier simulator";
longDescription = ''
Tamgamp (Pronouncement: "Damage Amp") is an LV2 guitar amp simulator that provides two plugins:
- Tamgamp - a plugin based on Guitarix DK Builder simulated chains.
- TamgampGX - a plugin based on tuned Guitarix internal amplifiers implementation.
The reference to the original Guitarix project: https://guitarix.org/
It simulates the set of the following guitar amplifiers:
- Fender Princeton Reverb-amp AA1164 (without reverb module)
- Fender Twin Reverb-Amp AA769 (Normal channel, bright off)
- Fender Twin Reverb-Amp AA769 (Vibrato channel, bright on)
- Marshall JCM-800 High-gain input
- Marshall JCM-800 Low-gain input
- Mesa/Boogie DC3 preamplifier (lead channel)
- Mesa/Boogie DC3 preamplifier (rhythm channel)
- Mesa Dual Rectifier preamplifier (orange channel, less gain)
- Mesa Dual Rectifier preamplifier (red channel, more gain)
- Peavey 5150II crunch channel
- Peavey 5150II lead channel
- VOX AC-30 Brilliant channel
- VOX AC-30 normal channel
'';
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
license = licenses.lgpl3Plus;
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchurl,
fontforge,
xorg,
}:
let
version = "1.11";
in
stdenv.mkDerivation {
pname = "tamsyn-font";
inherit version;
src = fetchurl {
url = "http://www.fial.com/~scott/tamsyn-font/download/tamsyn-font-${version}.tar.gz";
sha256 = "0kpjzdj8sv5871b8827mjgj9dswk75h94jj5iia2bds18ih1pglp";
};
nativeBuildInputs = [
fontforge
xorg.mkfontscale
];
unpackPhase = ''
tar -xzf $src --strip-components=1
'';
postBuild = ''
# convert pcf fonts to otb
for i in *.pcf; do
name=$(basename "$i" .pcf)
fontforge -lang=ff -c "Open(\"$i\"); Generate(\"$name.otb\")"
done
# compress pcf fonts
gzip -n -9 *.pcf
'';
installPhase = ''
install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
mkfontdir "$out/share/fonts/misc"
'';
meta = with lib; {
description = "Monospace bitmap font aimed at programmers";
longDescription = ''
Tamsyn is a monospace bitmap font, primarily aimed at
programmers. It was derived from Gilles Boccon-Gibod's MonteCarlo. Tamsyn
font was further inspired by Gohufont, Terminus, Dina, Proggy, Fixedsys, and
Consolas.
'';
homepage = "http://www.fial.com/~scott/tamsyn-font/";
downloadPage = "http://www.fial.com/~scott/tamsyn-font/download";
license = licenses.free;
maintainers = [ maintainers.rps ];
};
}

View File

@@ -0,0 +1,41 @@
{
fetchFromGitHub,
xorg,
lib,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "tamzen-font";
version = "1.11.6";
src = fetchFromGitHub {
owner = "sunaku";
repo = "tamzen-font";
rev = "Tamzen-${version}";
sha256 = "sha256-W5Wqsm5rpzzcbJl2lv6ORAznaAwLcmJ2S6Qo2zIoq9I=";
};
nativeBuildInputs = [ xorg.mkfontscale ];
installPhase = ''
install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
install -m 644 -D psf/*.psf -t "$out/share/consolefonts"
mkfontdir "$out/share/fonts/misc"
'';
meta = with lib; {
description = "Bitmapped programming font based on Tamsyn";
longDescription = ''
Tamzen is a monospace bitmap font. It is programmatically forked
from Tamsyn version 1.11, which backports glyphs from older
versions while deleting deliberately empty glyphs to allow
secondary/fallback fonts to provide real glyphs at those codepoints.
Tamzen also has fonts that additionally provide the Powerline
symbols.
'';
homepage = "https://github.com/sunaku/tamzen-font";
license = licenses.free;
maintainers = with maintainers; [ wishfort36 ];
};
}

View File

@@ -0,0 +1,121 @@
{
libX11,
libxcb,
libXcomposite,
libXdamage,
libXext,
libXfixes,
libXrandr,
stdenv,
lib,
alsa-lib,
at-spi2-atk,
atkmm,
cairo,
cups,
dbus,
expat,
glib,
gtk3,
libdrm,
libglvnd,
libxkbcommon,
libgbm,
nspr,
nss,
pango,
systemd,
fetchurl,
autoPatchelfHook,
dpkg,
}:
let
glLibs = [
libglvnd
libgbm
];
libs = [
alsa-lib
atkmm
at-spi2-atk
cairo
cups
dbus
expat
glib
gtk3
libdrm
libX11
libxcb
libXcomposite
libXdamage
libXext
libXfixes
libxkbcommon
libXrandr
nspr
nss
pango
];
buildInputs = glLibs ++ libs;
runpathPackages = glLibs ++ [
stdenv.cc.cc
stdenv.cc.libc
];
version = "1.0.47";
in
stdenv.mkDerivation {
pname = "tana";
inherit version buildInputs;
src = fetchurl {
url = "https://github.com/tanainc/tana-desktop-releases/releases/download/v${version}/tana_${version}_amd64.deb";
hash = "sha256-Si02dSMH7hnUNz3kxJavhfZLO46RAcanRvl8F/DrLY0=";
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
];
appendRunpaths = map (pkg: "${lib.getLib pkg}/lib") runpathPackages ++ [
"${placeholder "out"}/lib/tana"
];
# Needed for Zygote
runtimeDependencies = [
systemd
];
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r usr/* $out
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/share/applications/tana.desktop \
--replace "Exec=tana" "Exec=$out/bin/tana" \
--replace "Name=tana" "Name=Tana"
'';
meta = with lib; {
description = "Intelligent all-in-one workspace";
longDescription = ''
At its core, Tana is an outline editor which can be extended to
cover multiple use-cases and different workflows.
For individuals, it supports GTD, P.A.R.A., Zettelkasten note-taking
out of the box. Teams can leverage the powerful project management
views, like Kanban.
To complete all, a powerful AI system is integrated to help with most
of the tasks.
'';
homepage = "https://tana.inc";
changelog = "https://tana.inc/releases";
license = licenses.unfree;
maintainers = [ maintainers.massimogengarelli ];
platforms = platforms.linux;
mainProgram = "tana";
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "TandemAligner";
version = "0.1";
src = fetchFromGitHub {
owner = "seryrzu";
repo = "tandem_aligner";
rev = "v${finalAttrs.version}";
hash = "sha256-iMDj1HZ8LzmZckuAM3lbG3eSJSd/5JGVA6SBs7+AgX8=";
};
patches = [
(fetchpatch {
# https://github.com/seryrzu/tandem_aligner/pull/4
url = "https://github.com/seryrzu/tandem_aligner/commit/8b516c94f90aaa9cb84278aa811285d4204b03a9.patch";
hash = "sha256-kD46SykXklG/avK0+sc61YKFw9Bes8ZgFAjVXmcpN8k=";
stripLen = 1;
})
];
sourceRoot = "${finalAttrs.src.name}/tandem_aligner";
nativeBuildInputs = [ cmake ];
buildInputs = [ zlib ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp src/projects/tandem_aligner/tandem_aligner $out/bin
runHook postInstall
'';
doCheck = true;
# adapted from target test_launch in Makefile
checkPhase = ''
runHook preCheck
mkdir -p $TMPDIR/test_launch
src/projects/tandem_aligner/tandem_aligner \
--first $src/tandem_aligner/test_dataset/first.fasta \
--second $src/tandem_aligner/test_dataset/second.fasta \
-o $TMPDIR/test_launch \
--debug
grep -q "Thank you for using TandemAligner!" $TMPDIR/test_launch/tandem_aligner.log
diff $TMPDIR/test_launch/cigar.txt $src/tandem_aligner/test_dataset/true_cigar.txt
runHook postCheck
'';
meta = {
description = "Parameter-free algorithm for sequence alignment";
homepage = "https://github.com/seryrzu/tandem_aligner";
changelog = "https://github.com/seryrzu/tandem_aligner/releases/tag/v${finalAttrs.version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ amesgen ];
platforms = lib.platforms.linux;
mainProgram = "tandem_aligner";
};
})

View File

@@ -0,0 +1,23 @@
{ lib, fetchFromGitHub }:
rec {
version = "2.2.5";
src = fetchFromGitHub {
owner = "TandoorRecipes";
repo = "recipes";
tag = version;
hash = "sha256-N6d5T11fOAtPKAV/tqTWGdwMkWNY8rPpWT2TBSc0ybc=";
};
yarnHash = "sha256-1p79Bdsn6KDApYKz9BAwrA97svbB8ub+Wl49MTIumW8=";
meta = {
homepage = "https://tandoor.dev/";
changelog = "https://github.com/TandoorRecipes/recipes/releases/tag/${version}";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [
jvanbruegge
ryand56
];
};
}

View File

@@ -0,0 +1,62 @@
{
stdenv,
fetchYarnDeps,
fixup-yarn-lock,
callPackage,
nodejs_20,
yarn,
}:
let
common = callPackage ./common.nix { };
in
stdenv.mkDerivation (finalAttrs: {
pname = "tandoor-recipes-frontend";
inherit (common) version;
src = "${common.src}/vue3";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = common.yarnHash;
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs_20
(yarn.override { nodejs = nodejs_20; })
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$yarnOfflineCache"
fixup-yarn-lock yarn.lock
command -v yarn
yarn install --frozen-lockfile --offline --no-progress --non-interactive
patchShebangs node_modules/
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
cp -R ../cookbook/static/vue3/ $out
echo "${common.version}" > "$out/version"
runHook postInstall
'';
meta = common.meta // {
description = "Tandoor Recipes frontend";
};
})

View File

@@ -0,0 +1,176 @@
{
callPackage,
nixosTests,
python3,
}:
let
python = python3;
common = callPackage ./common.nix { };
frontend = callPackage ./frontend.nix { };
in
python.pkgs.buildPythonPackage {
pname = "tandoor-recipes";
inherit (common) version src;
format = "other";
patches = [
./pytest-xdist.patch # adapt pytest.ini the use $NIX_BUILD_CORES
];
postPatch = ''
# high parallelism let the tests easily fail with concurrent errors
if (( $NIX_BUILD_CORES > 4)); then
NIX_BUILD_CORES=4
fi
substituteInPlace pytest.ini --subst-var NIX_BUILD_CORES
# The script name test tries to use django allauth for admin login
substituteInPlace cookbook/admin.py \
--replace-fail "admin.site.login = secure_admin_login(admin.site.login)" ""
'';
propagatedBuildInputs = with python.pkgs; [
django
cryptography
django-annoying
django-cleanup
django-crispy-forms
django-tables2
django-vite
djangorestframework
drf-spectacular
drf-spectacular-sidecar
drf-writable-nested
django-oauth-toolkit
bleach
crispy-bootstrap4
gunicorn
lxml
markdown
pillow
psycopg2
python-dotenv
requests
six
webdavclient3
whitenoise
icalendar
pyyaml
uritemplate
beautifulsoup4
microdata
jinja2
django-webpack-loader
django-js-reverse
django-allauth
recipe-scrapers
django-scopes
django-treebeard
django-cors-headers
django-storages
boto3
django-prometheus
django-hcaptcha
python-ldap
django-auth-ldap
pyppeteer
pytubefix
aiohttp
inflection
redis
requests-oauthlib
pyjwt
python3-openid
python3-saml
standard-imghdr
# Tests
fido2
litellm
];
configurePhase = ''
runHook preConfigure
ln -sf ${frontend}/ cookbook/static/vue3
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
# Disable debug logging
export DEBUG=0
# Avoid dependency on django debug toolbar
export DEBUG_TOOLBAR=0
# See https://github.com/TandoorRecipes/recipes/issues/2043
mkdir cookbook/static/themes/maps/
touch cookbook/static/themes/maps/style.min.css.map
touch cookbook/static/themes/bootstrap.min.css.map
touch cookbook/static/css/bootstrap-vue.min.css.map
${python.pythonOnBuildForHost.interpreter} manage.py collectstatic
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp -r . $out/lib/tandoor-recipes
chmod +x $out/lib/tandoor-recipes/manage.py
makeWrapper $out/lib/tandoor-recipes/manage.py $out/bin/tandoor-recipes \
--prefix PYTHONPATH : "$PYTHONPATH"
cp staticfiles/vue3/service-worker.js $out/lib/tandoor-recipes/cookbook/templates/
runHook postInstall
'';
nativeCheckInputs = with python.pkgs; [
mock
pytestCheckHook
pytest-asyncio
pytest-cov-stub
pytest-django
pytest-factoryboy
pytest-html
pytest-xdist
];
# flaky
disabledTests = [
"test_add_duplicate"
"test_reset_inherit_space_fields"
"test_search_count"
"test_url_import_regex_replace"
"test_url_validator"
"test_delete"
];
passthru = {
inherit frontend python;
updateScript = ./update.sh;
tests = {
inherit (nixosTests) tandoor-recipes tandoor-recipes-script-name;
};
};
meta = common.meta // {
description = ''
Application for managing recipes, planning meals, building shopping lists
and much much more!
'';
mainProgram = "tandoor-recipes";
};
}

View File

@@ -0,0 +1,14 @@
diff --git a/pytest.ini b/pytest.ini
index 2755dc99..4026b96e 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -3,6 +3,6 @@ DJANGO_SETTINGS_MODULE = recipes.test_settings
testpaths = cookbook/tests
python_files = tests.py test_*.py *_tests.py
# uncomment to run coverage reports
-addopts = -n auto --cov=. --cov-report=html:docs/reports/coverage --cov-report=xml:docs/reports/coverage/coverage.xml --junitxml=docs/reports/tests/pytest.xml --html=docs/reports/tests/tests.html
+addopts = -n @NIX_BUILD_CORES@ --cov=. --cov-report=html:docs/reports/coverage --cov-report=xml:docs/reports/coverage/coverage.xml --junitxml=docs/reports/tests/pytest.xml --html=docs/reports/tests/tests.html
# addopts = -n auto --junitxml=docs/reports/tests/pytest.xml --html=docs/reports/tests/tests.html
-asyncio_default_fixture_loop_scope = fixture
\ No newline at end of file
+asyncio_default_fixture_loop_scope = fixture

View File

@@ -0,0 +1,42 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./ -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq
# shellcheck shell=bash
if [ -n "$GITHUB_TOKEN" ]; then
TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
fi
if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
echo "Regenerates packaging data for the tandoor-recipes package."
echo "Usage: $0 [git release tag]"
exit 1
fi
version="$1"
set -euo pipefail
if [ -z "$version" ]; then
version="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/TandoorRecipes/recipes/releases?per_page=1" | jq -r '.[0].tag_name')"
fi
package_src="https://raw.githubusercontent.com/TandoorRecipes/recipes/$version"
src_hash=$(nix-prefetch-github TandoorRecipes recipes --rev "${version}" | jq -r .hash)
tmpdir=$(mktemp -d)
trap 'rm -rf "$tmpdir"' EXIT
pushd "$tmpdir"
wget "${TOKEN_ARGS[@]}" "$package_src/vue/yarn.lock"
yarn_hash=$(prefetch-yarn-deps yarn.lock)
popd
# Use friendlier hashes
yarn_hash=$(nix --extra-experimental-features nix-command hash to-sri --type sha256 "$yarn_hash")
common="./pkgs/applications/misc/tandoor-recipes/common.nix"
sed -i -E -e "s#version = \".*\"#version = \"$version\"#" $common
sed -i -E -e "s#hash = \".*\"#hash = \"$src_hash\"#" $common
sed -i -E -e "s#yarnHash = \".*\"#yarnHash = \"$yarn_hash\"#" $common

View File

@@ -0,0 +1,41 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
udev,
}:
rustPlatform.buildRustPackage rec {
pname = "tangara-cli";
version = "0.4.3";
src = fetchFromGitHub {
owner = "haileys";
repo = "tangara-companion";
tag = "v${version}";
hash = "sha256-pTE+xlXWIOOt1oiKosnbXTCLYoAqP3CfXA283a//Ds0=";
};
cargoHash = "sha256-C7Q3Oo/aBBH6pW1zSFQ2nD07+wu8uXfRSwNif2pVlW0=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
udev
];
buildAndTestSubdir = "crates/tangara-cli";
meta = {
description = "Command-line tool for managing the Cool Tech Zone Tangara";
mainProgram = "tangara";
homepage = "https://github.com/haileys/tangara-companion";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ stevestreza ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
rustPlatform,
fetchFromGitHub,
copyDesktopItems,
makeDesktopItem,
gdk-pixbuf,
glib,
graphene,
gtk4,
libadwaita,
pango,
pkg-config,
udev,
}:
rustPlatform.buildRustPackage rec {
pname = "tangara-companion";
version = "0.5.2";
src = fetchFromGitHub {
owner = "haileys";
repo = "tangara-companion";
tag = "v${version}";
hash = "sha256-x/xB+itr1GVcaTEre3u6Lchg9VcSzWiNyWVGv5Aczgw=";
};
cargoHash = "sha256-PVTfAG2AOioW1zVXtXB5SBJX2sJoWVRQO3NafUOAleo=";
nativeBuildInputs = [
copyDesktopItems
glib
pkg-config
];
buildInputs = [
gdk-pixbuf
glib
graphene
gtk4
libadwaita
pango
udev
];
desktopItems = [
(makeDesktopItem {
name = "tangara-companion";
desktopName = "Tangara Companion";
comment = meta.description;
type = "Application";
exec = meta.mainProgram;
terminal = false;
categories = [
"Utility"
"GTK"
];
icon = "tangara-companion";
startupNotify = true;
})
];
postInstall = ''
install -Dm644 $src/data/assets/icon.svg $out/share/icons/hicolor/scalable/apps/tangara-companion.svg
'';
meta = {
description = "Companion app for Cool Tech Zone Tangara";
mainProgram = "tangara-companion";
homepage = "https://github.com/haileys/tangara-companion";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ benpye ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
ncurses,
SDL2,
libGL,
libX11,
}:
stdenv.mkDerivation {
pname = "tangerine";
version = "0-unstable-2024-04-05";
src = fetchFromGitHub {
owner = "Aeva";
repo = "tangerine";
rev = "a628e95d181d396246214df5194ac6b18698d811";
hash = "sha256-vn4/eH5o0UhTNfN2UB4r0eKNn90PbH3UPfarHsnQPIk=";
};
patches = [
(fetchpatch {
name = "no-install-during-build.patch";
url = "https://github.com/Aeva/tangerine/pull/12/commits/2d7d1ae1e21e8fe52df2c4a33e947b2ff6b07812.patch";
hash = "sha256-zLAx5FOvtUsUZM/nUCFW8Z1Xe3+oV95Nv1s3GaNcV/c=";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [
ncurses
SDL2
libGL
libX11
];
meta = with lib; {
description = "System for creating 3D models procedurally from a set of Signed Distance Function (SDF) primitive shapes and combining operators";
homepage = "https://github.com/Aeva/tangerine";
license = licenses.asl20;
maintainers = [ maintainers.viraptor ];
broken = stdenv.hostPlatform.isDarwin; # third_party/naive-surface-nets doesn't find std::execution
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "tango";
version = "1.1.0";
src = fetchFromGitHub {
owner = "masakichi";
repo = "tango";
rev = "v${version}";
hash = "sha256-e/M2iRm/UwfnRVnMo1PmQTkz4IGTxnsCXNSSUkhsiHk=";
};
vendorHash = "sha256-83nKtiEy1na1HgAQcbTEfl+0vGg6BkCLBK1REN9fP+k=";
meta = with lib; {
description = "Local command-line Japanese dictionary tool using yomichan's dictionary files";
homepage = "https://github.com/masakichi/tango";
license = licenses.mit;
maintainers = with maintainers; [ donovanglover ];
mainProgram = "tango";
};
}

View File

@@ -0,0 +1,102 @@
{
stdenv,
lib,
fetchFromGitHub,
appstream-glib,
desktop-file-utils,
gdk-pixbuf,
gettext,
gjs,
glib,
glib-networking,
gobject-introspection,
gsettings-desktop-schemas,
gtk4,
libadwaita,
gst_all_1,
hicolor-icon-theme,
meson,
ninja,
nix-update-script,
pkg-config,
python3,
webkitgtk_6_0,
blueprint-compiler,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "tangram";
version = "3.3";
src = fetchFromGitHub {
owner = "sonnyp";
repo = "Tangram";
tag = "v${version}";
hash = "sha256-OtQN8Iigu92iKa7CAaslIpbS0bqJ9Vus++inrgV/eeM=";
fetchSubmodules = true;
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
gettext
gobject-introspection
hicolor-icon-theme
meson
ninja
pkg-config
python3
blueprint-compiler
wrapGAppsHook4
];
buildInputs = [
gdk-pixbuf
gjs
glib
glib-networking
gsettings-desktop-schemas
gtk4
libadwaita
webkitgtk_6_0
]
++ (with gst_all_1; [
gstreamer
gst-libav
gst-plugins-base
(gst-plugins-good.override { gtkSupport = true; })
gst-plugins-bad
]);
dontPatchShebangs = true;
postPatch = ''
substituteInPlace src/meson.build --replace "/app/bin/blueprint-compiler" "blueprint-compiler"
substituteInPlace src/bin.js troll/gjspack/bin/gjspack \
--replace "#!/usr/bin/env -S gjs -m" "#!${gjs}/bin/gjs -m"
'';
# https://github.com/NixOS/nixpkgs/issues/31168#issuecomment-341793501
preFixup = ''
sed -e '2iimports.package._findEffectiveEntryPointName = () => "re.sonny.Tangram"' \
-i $out/bin/re.sonny.Tangram
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Run web apps on your desktop";
mainProgram = "re.sonny.Tangram";
homepage = "https://github.com/sonnyp/Tangram";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [
austinbutler
chuangzhu
];
teams = [ lib.teams.gnome-circle ];
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "tanidvr";
version = "1.4.1";
src = fetchurl {
url = "mirror://sourceforge/tanidvr/TaniDVR/${pname}-${version}/${pname}-${version}.tar.bz2";
sha256 = "0irwwf6mb72n3y4xcrl3s081nbnldvdlc6ypjqxa4p32c1d0g6ql";
};
meta = {
description = "CLI tool for managing and capturing video from DVRs which use the DVR-IP protocol";
homepage = "https://tanidvr.sourceforge.net/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ pho ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,71 @@
{
buildGoModule,
fetchFromGitHub,
lib,
installShellFiles,
}:
buildGoModule rec {
pname = "tanka";
version = "0.35.0";
src = fetchFromGitHub {
owner = "grafana";
repo = "tanka";
rev = "v${version}";
sha256 = "sha256-Jghw2KfHNl2VoGQYE/kadvcgXMIVP9SOsvT2ltWrQSs=";
};
vendorHash = "sha256-rms/aUchtcjsjeS51SB2eKPOTRoYOLDGbrmhRld6gUo=";
doCheck = false;
# Required for versions >= 0.28 as they introduce a gowork.sum file. This is only used for tests so we can safely disable GOWORK
env.GOWORK = "off";
subPackages = [ "cmd/tk" ];
ldflags = [
"-s"
"-w"
"-extldflags '-static'"
"-X github.com/grafana/tanka/pkg/tanka.CurrentVersion=v${version}"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
echo "complete -C $out/bin/tk tk" > tk.bash
cat >tk.fish <<EOF
function __complete_tk
set -lx COMP_LINE (commandline -cp)
test -z (commandline -ct)
and set COMP_LINE "\$COMP_LINE "
$out/bin/tk
end
complete -f -c tk -a "(__complete_tk)"
EOF
cat >tk.zsh <<EOF
#compdef tk
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C $out/bin/tk tk
EOF
installShellCompletion \
--cmd tk \
--bash tk.bash \
--fish tk.fish \
--zsh tk.zsh
'';
meta = with lib; {
description = "Flexible, reusable and concise configuration for Kubernetes";
homepage = "https://tanka.dev";
license = licenses.asl20;
maintainers = with maintainers; [ mikefaille ];
mainProgram = "tk";
};
}

1908
pkgs/by-name/ta/tantivy-go/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,45 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tantivy-go";
version = "1.0.4";
src = fetchFromGitHub {
owner = "anyproto";
repo = "tantivy-go";
tag = "v${finalAttrs.version}";
hash = "sha256-ksHw+62JwQrzxLuXwYfTLOkC22Miz1Rpl5XX8+vPBcM=";
};
sourceRoot = "${finalAttrs.src.name}/rust";
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"rust-stemmers-1.2.0" = "sha256-GJYFQf025U42rJEoI9eIi3xDdK6enptAr3jphuKJdiw=";
"tantivy-0.23.0" = "sha256-e2ffM2gRC5eww3xv9izLqukGUgduCt2u7jsqTDX5l8k=";
"tantivy-jieba-0.11.0" = "sha256-BDz6+EVksgLkOj/8XXxPMVshI0X1+oLt6alDLMpnLZc=";
};
};
postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock
chmod +w ../bindings.h
'';
meta = {
description = "Tantivy go bindings";
homepage = "https://github.com/anyproto/tantivy-go";
changelog = "https://github.com/anyproto/tantivy-go/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
autrimpo
adda
kira-bruneau
];
};
})

View File

@@ -0,0 +1,35 @@
--- a/taoup-fortune 2021-09-05 12:16:23.408295791 +0800
+++ b/taoup-fortune 2021-09-05 13:02:52.286440200 +0800
@@ -5,31 +5,9 @@
# - https://github.com/matheuss/parrotsay
# - https://github.com/busyloop/lolcat
# - https://github.com/sckott/cowsay (enhanced version)
-dir=`dirname "${BASH_SOURCE[0]}"`
-
-# USER ALERT!!! @ronjouch complained about execution speed at https://github.com/globalcitizen/taoup/issues/11
-# ... therefore we add caching ... therefore first ensure we have an up to date cache via one of ...
-# md5sum
-if [ `which md5sum 2>/dev/null` ]; then
- MD5SUM=`md5sum ${dir}/taoup | cut -d ' ' -f1`
-# md5
-elif [ `which md5 2>/dev/null` ]; then
- MD5SUM=`md5 -q ${dir}/taoup | cut -d ' ' -f1`
-# openssl
-elif [ `which openssl 2>/dev/null` ]; then
- MD5SUM=`cat ${dir}/taoup | openssl md5 | grep -o '[[:xdigit:]][[:xdigit:]]*$' |cut -d '=' -f2- |cut -c 2-`
-# ruby
-elif [ `which ruby 2>/dev/null` ]; then
- MD5SUM=`ruby -rdigest/md5 -e"puts Digest::MD5.file'${dir}/taoup'"`
-fi
# determine cachefile name
-cachefile=${dir}/.taoup-fortune.cache.${MD5SUM}
-
-# create if necessary
-if [ ! -r $cachefile ]; then
- ${dir}/taoup $@ >${cachefile}
-fi
+cachefile=@out@/lib/taoup/cache
# handle all classes of society
if [ `which cowsay 2>/dev/null` ]; then

View File

@@ -0,0 +1,21 @@
--- a/taoup 2021-09-07 16:45:00.000000000 +0800
+++ b/taoup 2021-09-07 16:46:00.000000000 +0800
@@ -7,12 +7,12 @@
# show help if requested
if ARGV[0] == '--help' or ARGV[0] == '-h' then
- puts "usage: " + $0 + " [arguments]"
- puts " " + $0 + " Display all fortunes and sections."
- puts " " + $0 + " < --help | -h > This help."
- puts " " + $0 + " --whitetrash Convert ANSI colors for light/white terminals."
- puts " " + $0 + " --machine Remove ANSI colors."
- puts " " + $0 + " --fortune Convert output to fortune format (and lose colors)."
+ puts "usage: " + "@pname@" + " [arguments]"
+ puts " " + "@pname@" + " Display all fortunes and sections."
+ puts " " + "@pname@" + " < --help | -h > This help."
+ puts " " + "@pname@" + " --whitetrash Convert ANSI colors for light/white terminals."
+ puts " " + "@pname@" + " --machine Remove ANSI colors."
+ puts " " + "@pname@" + " --fortune Convert output to fortune format (and lose colors)."
exit(0)
end
# ... but optionally make sure ANSI escape sequences are filtered out

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchFromGitHub,
ruby,
bash,
ncurses,
}:
let
rubyEnv = ruby.withPackages (ps: with ps; [ ansi ]);
in
stdenv.mkDerivation rec {
pname = "taoup";
# nixpkgs-update: no auto update
version = "1.1.23";
src = fetchFromGitHub {
owner = "globalcitizen";
repo = "taoup";
rev = "v${version}";
hash = "sha256-9J46fKyeSZW71r67R8y9KVPeCH8fn27hOk/XpusqGmk=";
};
buildInputs = [
rubyEnv
bash
ncurses
];
patches = [
# Pre-create a cache within this derivation
./cachefile.patch
# Remove the need to test for `tput`, depend on ncurses directly
./tput.patch
# Fix the script name in `taoup --help` output
./help.patch
];
postPatch = ''
substituteInPlace taoup \
--subst-var-by ncurses ${ncurses} \
--subst-var-by pname taoup
substituteInPlace taoup-fortune \
--subst-var-by out $out \
--replace-fail "/bin/bash" "${bash}/bin/bash"
'';
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/taoup}
cp taoup $out/lib/taoup
cat > $out/bin/taoup <<EOF
#!${bash}/bin/bash
exec ${rubyEnv}/bin/ruby "$out/lib/taoup/taoup" "\$@"
EOF
chmod +x $out/bin/taoup
# Populate the cache created by cachefile.patch above
$out/bin/taoup > $out/lib/taoup/cache
cp taoup-fortune $out/bin
chmod +x $out/bin/taoup-fortune
runHook postInstall
'';
meta = {
description = "Tao of Unix Programming (Ruby-powered ANSI colored fortunes)";
homepage = "https://github.com/globalcitizen/taoup";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.zakame ];
};
}

View File

@@ -0,0 +1,17 @@
--- a/taoup 2021-09-05 12:43:48.334615538 +0800
+++ b/taoup 2021-09-05 12:55:07.631617799 +0800
@@ -26,11 +26,9 @@
zero_colors = true
fortunify = true
else
- if `which tput` then
- colors = `tput colors`
- if colors.chop == "-1" then
- zero_colors = true
- end
+ colors = `@ncurses@/bin/tput colors`
+ if colors.chop == "-1" then
+ zero_colors = true
end
end
if ARGV[0] == '--whitetrash' then

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
ladspa-sdk,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "tap-plugins";
version = "0-unstable-2020-12-09";
src = fetchFromGitHub {
owner = "tomscii";
repo = "tap-plugins";
rev = "5d882799f37dffe37fc73451f2c5b4fb24316f3b";
hash = "sha256-bwybMxIAbOzPr43QGshjbnRK5GdziGiYDsTutZdSj4s=";
};
buildInputs = [
ladspa-sdk
];
postPatch = ''
substituteInPlace Makefile --replace /usr/local "$out"
'';
meta = {
homepage = "https://tomscii.sig7.se/tap-plugins/";
description = "Tom's Audio Processing plugins";
longDescription = ''
A number of LADSPA plugins including: TAP AutoPanner, TAP Chorus/Flanger,
TAP DeEsser, TAP Dynamics (Mono & Stereo), TAP Equalizer and TAP
Equalizer/BW, TAP Fractal Doubler, TAP Pink/Fractal Noise, TAP Pitch
Shifter, TAP Reflector, TAP Reverberator, TAP Rotary Speaker, TAP Scaling
Limiter, TAP Sigmoid Booster, TAP Stereo Echo, TAP Tremolo, TAP
TubeWarmth, TAP Vibrato.
'';
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,57 @@
{
stdenv,
lib,
rustPlatform,
fetchCrate,
pkg-config,
openssl,
withLsp ? true,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "taplo";
version = "0.10.0";
src = fetchCrate {
inherit version;
pname = "taplo-cli";
hash = "sha256-iKc4Nu7AZE1LSuqXffi3XERbOqZMOkI3PV+6HaJzh4c=";
};
cargoHash = "sha256-tvijtB5fwOzQnnK/ClIvTbjCcMeqZpXcRdWWKZPIulM=";
nativeBuildInputs = [
installShellFiles
pkg-config
];
buildInputs = [
openssl
];
buildFeatures = lib.optional withLsp "lsp";
postInstall =
lib.optionalString
(
stdenv.buildPlatform.canExecute stdenv.hostPlatform
&&
# Creation of the completions fails on Darwin platforms.
!stdenv.hostPlatform.isDarwin
)
''
installShellCompletion --cmd taplo \
--bash <($out/bin/taplo completions bash) \
--fish <($out/bin/taplo completions fish) \
--zsh <($out/bin/taplo completions zsh)
'';
meta = with lib; {
description = "TOML toolkit written in Rust";
homepage = "https://taplo.tamasfe.dev";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "taplo";
};
}

View File

@@ -0,0 +1,36 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "taproot-assets";
version = "0.6.1";
src = fetchFromGitHub {
owner = "lightninglabs";
repo = "taproot-assets";
rev = "v${version}";
hash = "sha256-g9YG/qeXM7hmpgvhyTPTOWy37rGG/Tbc5YiuaQFIbJA=";
};
vendorHash = "sha256-9d7+y3f+IGDn5wbe9PY58en3cCkWMxCqBBBrRCDDg2U=";
subPackages = [
"cmd/tapcli"
"cmd/tapd"
];
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Daemon for the Taproot Assets protocol specification";
homepage = "https://github.com/lightninglabs/taproot-assets";
license = licenses.mit;
maintainers = with maintainers; [ prusnak ];
};
}

View File

@@ -0,0 +1,44 @@
diff --git a/tapview b/tapview
index ad6a33a66d1..4cf9545d42f 100644
--- a/tapview
+++ b/tapview
@@ -13,21 +13,6 @@
#
# This is version 1.1
# A newer version may be available at https://gitlab.com/esr/tapview
-#
-# POSIX allows but does not mandate that -n suppresses emission of a
-# trailing newline in echo. Thus, some shell builtin echos don't do
-# that. Cope gracefully.
-# shellcheck disable=SC2039
-if [ "$(echo -n "a"; echo "b")" != "ab" ]
-then
- ECHO="echo"
-elif [ "$(/bin/echo -n "a"; /bin/echo "b")" = "ab" ]
-then
- ECHO="/bin/echo"
-else
- echo "tapview: bailing out, your echo lacks -n support."
- exit 3
-fi
OK="."
FAIL="F"
@@ -37,7 +22,7 @@ TODO_OK="u"
ship_char() {
# shellcheck disable=SC2039
- "${ECHO}" -n "$1"
+ echo -n "$1"
}
ship_line() {
@@ -155,7 +140,7 @@ do
fi
done
-/bin/echo ""
+echo ""
if [ -z "$expect" ]
then

View File

@@ -0,0 +1,34 @@
{
asciidoctor,
fetchFromGitLab,
lib,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "tapview";
version = "1.1";
nativeBuildInputs = [ asciidoctor ];
src = fetchFromGitLab {
owner = "esr";
repo = "tapview";
rev = version;
hash = "sha256-inrxICNglZU/tup+YnHaDiVss32K2OXht/7f8lOZI4g=";
};
# Remove unnecessary `echo` checks: `/bin/echo` fails, and `echo -n` works as expected.
patches = [ ./dont_check_echo.patch ];
makeFlags = [ "prefix=$(out)" ];
meta = with lib; {
description = "Minimalist pure consumer for TAP (Test Anything Protocol)";
mainProgram = "tapview";
homepage = "https://gitlab.com/esr/tapview";
license = licenses.bsd2;
platforms = platforms.all;
maintainers = with maintainers; [ pamplemousse ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "tar2ext4";
version = "0.13.0";
src = fetchFromGitHub {
owner = "microsoft";
repo = "hcsshim";
rev = "v${version}";
sha256 = "sha256-/ImyicXRBGclnUEpqygNYhknFYJmRqBqKkz/gNxVLWQ=";
};
sourceRoot = "${src.name}/cmd/tar2ext4";
vendorHash = null;
meta = with lib; {
description = "Convert a tar archive to an ext4 image";
maintainers = with maintainers; [ qyliss ];
license = licenses.mit;
mainProgram = "tar2ext4";
};
}

Some files were not shown because too many files have changed in this diff Show More