push sheeet
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
+42
View File
@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
libusb1,
unstableGitUpdater,
}:
stdenv.mkDerivation {
pname = "ch341eeprom";
version = "0-unstable-2024-05-06";
src = fetchFromGitHub {
owner = "command-tab";
repo = "ch341eeprom";
rev = "7cffbef7552d93162bd90cae836a45e94acb93fb";
hash = "sha256-8pvQ2hBP3Rf8+MWsmMY53BghFiC5/b9k8vUjU2K6Ib4=";
};
buildInputs = [ libusb1 ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installPhase = ''
runHook preInstall
install -Dm755 -T ch341eeprom $out/bin/ch341eeprom
runHook postInstall
'';
passthru = {
updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
};
meta = {
description = "Libusb based programming tool for 24Cxx serial EEPROMs using the WinChipHead CH341A IC";
homepage = "https://github.com/command-tab/ch341eeprom";
license = lib.licenses.gpl3Plus;
mainProgram = "ch341eeprom";
maintainers = with lib.maintainers; [ xokdvium ];
platforms = with lib.platforms; darwin ++ linux;
};
}
+88
View File
@@ -0,0 +1,88 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
autoconf,
automake,
libtool,
pkg-config,
which,
libavif,
libjxl,
librsvg,
libxslt,
libxml2,
docbook_xml_dtd_412,
docbook_xsl,
glib,
}:
stdenv.mkDerivation (finalAttrs: {
version = "1.16.2";
pname = "chafa";
src = fetchFromGitHub {
owner = "hpjansson";
repo = "chafa";
tag = finalAttrs.version;
hash = "sha256-bIFPnbciaog9piqBMSpe9zLwH7irp5CW1WG5frAMqpI=";
};
outputs = [
"bin"
"dev"
"man"
"out"
];
nativeBuildInputs = [
autoconf
automake
libtool
pkg-config
which
libxslt
libxml2
docbook_xml_dtd_412
docbook_xsl
installShellFiles
];
buildInputs = [
glib
libavif
libjxl
librsvg
];
patches = [ ./xmlcatalog_patch.patch ];
preConfigure = ''
substituteInPlace ./autogen.sh --replace pkg-config '$PKG_CONFIG'
NOCONFIGURE=1 ./autogen.sh
'';
configureFlags = [
"--enable-man"
"--with-xml-catalog=${docbook_xml_dtd_412}/xml/dtd/docbook/catalog.xml"
];
postInstall = ''
installShellCompletion --cmd chafa \
--fish tools/completions/fish-completion.fish \
--zsh tools/completions/zsh-completion.zsh
'';
meta = {
description = "Terminal graphics for the 21st century";
homepage = "https://hpjansson.org/chafa/";
license = lib.licenses.lgpl3Plus;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
mog
prince213
];
mainProgram = "chafa";
};
})
@@ -0,0 +1,23 @@
diff --git a/configure.ac b/configure.ac
index 0055a70..fd4a905 100644
--- a/configure.ac
+++ b/configure.ac
@@ -111,18 +111,6 @@ AS_IF([ test "$enable_man" != no ], [
])
])
-AS_IF([test "$enable_man" != no], [
- dnl check for DocBook XSL stylesheets in the local catalog
- JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
- [DocBook XSL Stylesheets], [have_docbook_style=yes],[have_docbook_style=no])
- AS_IF([ test "$have_docbook_style" != yes ], [
- AS_IF([ test "$enable_man" = yes ], [
- AC_MSG_ERROR([DocBook XSL Stylesheets are required for --enable-man])
- ])
- enable_man=no
- ])
-])
-
AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
AC_MSG_CHECKING([whether to generate man pages])
+60
View File
@@ -0,0 +1,60 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "chain-bench";
version = "0.1.10";
src = fetchFromGitHub {
owner = "aquasecurity";
repo = "chain-bench";
rev = "v${version}";
sha256 = "sha256-5+jSbXbT1UwHMVeZ07qcY8Is88ddHdr7QlgcbQK+8FA=";
};
vendorHash = "sha256-uN4TSAxb229NhcWmiQmWBajla9XKnpiZrXOWJxt/mic=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X main.version=v${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd chain-bench \
--bash <($out/bin/chain-bench completion bash) \
--fish <($out/bin/chain-bench completion fish) \
--zsh <($out/bin/chain-bench completion zsh)
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/chain-bench --help
$out/bin/chain-bench --version | grep "v${version}"
runHook postInstallCheck
'';
meta = {
homepage = "https://github.com/aquasecurity/chain-bench";
changelog = "https://github.com/aquasecurity/chain-bench/releases/tag/v${version}";
description = "Open-source tool for auditing your software supply chain stack for security compliance based on a new CIS Software Supply Chain benchmark";
mainProgram = "chain-bench";
longDescription = ''
Chain-bench is an open-source tool for auditing your software supply chain
stack for security compliance based on a new CIS Software Supply Chain
benchmark. The auditing focuses on the entire SDLC process, where it can
reveal risks from code time into deploy time. To win the race against
hackers and protect your sensitive data and customer trust, you need to
ensure your code is compliant with your organization's policies.
'';
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jk ];
};
}
+41
View File
@@ -0,0 +1,41 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "chainsaw";
version = "2.13.1";
src = fetchFromGitHub {
owner = "WithSecureLabs";
repo = "chainsaw";
tag = "v${finalAttrs.version}";
hash = "sha256-89ra6VfqGaKyWiy8+m97vNm/IsQKJCU+kHyOUIjMQtA=";
};
cargoHash = "sha256-nc75jhzi7UWDnAEvkdN/WHZJOEedexgRAO2akj3PNfc=";
ldflags = [
"-w"
"-s"
];
checkFlags = [
# failed
"--skip=analyse_srum_database_json"
"--skip=search_jq_simple_string"
"--skip=search_q_jsonl_simple_string"
"--skip=search_q_simple_string"
];
meta = {
description = "Rapidly Search and Hunt through Windows Forensic Artefacts";
homepage = "https://github.com/WithSecureLabs/chainsaw";
changelog = "https://github.com/WithSecureLabs/chainsaw/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "chainsaw";
};
})
+55
View File
@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
}:
let
# This derivation is adapted from the
# install script that Chalk recommends: https://api.chalk.ai/install.sh
chalkVersion = "1.29.4";
chalkPathPiecesByNixSystem = {
"aarch64-darwin" = "Darwin/aarch64";
"x86_64-darwin" = "Darwin/x86_64";
"aarch64-linux" = "Linux/aarch64";
"x86_64-linux" = "Linux/x86_64";
};
chalkHashByNixSystem = {
"aarch64-darwin" = "sha256-zHPfyeHdHfbxrUhjLJHbLkeuu7WwK4jtYX7bk5wimX0=";
"x86_64-darwin" = "sha256-D6lBrnBlD+OU5kQv6b6BzK+u7vB91rTtYpz8iBUeWdA=";
"aarch64-linux" = "sha256-XHaCLxVJbXjPILczDGWLFqP0q/nBO5O2A9lghkvM474=";
"x86_64-linux" = "sha256-hlNljLJm+m7l+Djni+ATKyWKSGKSDP0YN3CuJ4fXmWg=";
};
chalkHash = chalkHashByNixSystem."${stdenv.system}";
chalkPathPieces = chalkPathPiecesByNixSystem."${stdenv.system}";
chalkUrl = "https://api.chalk.ai/v1/install/${chalkPathPieces}/v${chalkVersion}";
in
stdenv.mkDerivation {
pname = "chalk";
version = chalkVersion;
src = fetchurl {
url = chalkUrl;
hash = chalkHash;
};
dontUnpack = true;
installPhase = ''
runHook preInstall
install -Dm 555 $src $out/bin/chalk
runHook postInstall
'';
meta = {
description = "CLI tool for interacting with the Chalk platform";
homepage = "https://docs.chalk.ai/cli";
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ curran ];
mainProgram = "chalk";
platforms = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
];
};
}
+35
View File
@@ -0,0 +1,35 @@
{
buildGoModule,
lib,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "chamber";
version = "3.1.3";
src = fetchFromGitHub {
owner = "segmentio";
repo = "chamber";
rev = "v${version}";
sha256 = "sha256-Hh+u5Rf7YN1Gk2whBMXmtXdXCSeh2CqaQBSzw8KNb5E=";
};
env.CGO_ENABLED = 0;
vendorHash = "sha256-xhfBpLAhAVT42vA2oRm+EQHXA1dWy3UD5m8Ds8/IyAk=";
ldflags = [
"-s"
"-w"
"-X main.Version=v${version}"
];
meta = with lib; {
description = "Tool for managing secrets by storing them in AWS SSM Parameter Store";
homepage = "https://github.com/segmentio/chamber";
license = licenses.mit;
maintainers = with maintainers; [ kalekseev ];
mainProgram = "chamber";
};
}
+79
View File
@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
makeWrapper,
xz,
python3,
}:
let
# https://github.com/RfidResearchGroup/ChameleonUltra/blob/main/software/script/requirements.txt
pythonPath =
with python3.pkgs;
makePythonPath [
colorama
prompt-toolkit
pyserial
];
in
stdenv.mkDerivation (finalAttrs: {
pname = "chameleon-cli";
version = "2.1.0-unstable-2025-09-12";
src = fetchFromGitHub {
owner = "RfidResearchGroup";
repo = "ChameleonUltra";
rev = "8998621a47011008df23be9a56b1fc9ce1a64ac3";
sparseCheckout = [ "software" ];
hash = "sha256-I+sWxwFdZ5nozxv8Z1TsEHpMbcMHGhKAw3xI7DzyjIA=";
};
sourceRoot = "${finalAttrs.src.name}/software";
postPatch = ''
substituteInPlace src/CMakeLists.txt \
--replace-fail "liblzma" "lzma" \
--replace-fail "FetchContent_MakeAvailable(xz)" ""
'';
nativeBuildInputs = [
cmake
makeWrapper
];
buildInputs = [
xz
];
cmakeFlags = [
"-S"
"../src"
];
installPhase = ''
runHook preInstall
mkdir -p $out/libexec
cp -r ../script/* $out/libexec
rm -r $out/libexec/tests
rm $out/libexec/requirements.txt
makeWrapper ${lib.getExe python3} $out/bin/chameleon-cli \
--add-flags "$out/libexec/chameleon_cli_main.py" \
--prefix PYTHONPATH : ${pythonPath}
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Command line interface for Chameleon Ultra";
homepage = "https://github.com/RfidResearchGroup/ChameleonUltra";
license = lib.licenses.gpl3Only;
mainProgram = "chameleon-cli";
maintainers = with lib.maintainers; [ azuwis ];
};
})
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils nix-update
# This update script exists, because nix-update is unable to ignore `dev`
# tags that exist on the upstream repo.
#
# Once https://github.com/Mic92/nix-update/issues/322 is resolved it can be
# removed.
set -exuo pipefail
cd "$(git rev-parse --show-toplevel)"
nix-update --version=branch chameleon-cli
tag=$(git ls-remote --tags --refs --sort='-version:refname' https://github.com/RfidResearchGroup/ChameleonUltra.git 'v*' | head -n 1 | cut --delimiter=/ --field=3-)
tag="${tag#v}"
sed -i -e 's|version = "[^-]*-unstable-|version = "'"${tag}"'-unstable-|' pkgs/by-name/ch/chameleon-cli/package.nix
+60
View File
@@ -0,0 +1,60 @@
{
lib,
blueprint-compiler,
cargo,
desktop-file-utils,
fetchFromGitLab,
libadwaita,
meson,
ninja,
nix-update-script,
pkg-config,
rustPlatform,
rustc,
stdenv,
wrapGAppsHook4,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chance";
version = "4.0.1";
src = fetchFromGitLab {
owner = "zelikos";
repo = "rollit";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-25+/TvTba/QF7+QE8+O7u4yc9BNi0pcZeNj11dGkEfg=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src;
hash = "sha256-ObT3l/Exk6UzUGmzCed7mJ7hVzg8CsQIT3fe1RIUfIM=";
};
nativeBuildInputs = [
blueprint-compiler
cargo
desktop-file-utils
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustc
wrapGAppsHook4
];
buildInputs = [
libadwaita
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Dice roller built using GTK4 and libadwaita";
homepage = "https://gitlab.com/zelikos/rollit";
changelog = "https://gitlab.com/zelikos/rollit/-/releases/${finalAttrs.version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ Guanran928 ];
mainProgram = "rollit";
platforms = lib.platforms.linux;
};
})
@@ -0,0 +1,83 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "changedetection-io";
version = "0.49.4";
format = "setuptools";
src = fetchFromGitHub {
owner = "dgtlmoon";
repo = "changedetection.io";
tag = version;
hash = "sha256-EmtJ8XXPb75W4VPj4Si9fdzVLDKVfm+8P6UZZlMpMdI=";
};
pythonRelaxDeps = true;
propagatedBuildInputs =
with python3.pkgs;
[
apprise
beautifulsoup4
brotli
babel
chardet
cryptography
dnspython
elementpath
eventlet
extruct
feedgen
flask
flask-compress
flask-cors
flask-expects-json
flask-login
flask-paginate
flask-restful
flask-wtf
greenlet
inscriptis
jinja2
jinja2-time
jsonpath-ng
jq
loguru
lxml
paho-mqtt
playwright
pyee
pyppeteer
pytz
requests
selenium
setuptools
timeago
urllib3
validators
werkzeug
wtforms
]
++ requests.optional-dependencies.socks;
# tests can currently not be run in one pytest invocation and without docker
doCheck = false;
nativeCheckInputs = with python3.pkgs; [
pytest-flask
pytestCheckHook
];
meta = with lib; {
description = "Self-hosted free open source website change detection tracking, monitoring and notification service";
homepage = "https://github.com/dgtlmoon/changedetection.io";
changelog = "https://github.com/dgtlmoon/changedetection.io/releases/tag/${src.tag}";
license = licenses.asl20;
maintainers = with maintainers; [ mikaelfangel ];
mainProgram = "changedetection.io";
};
}
+32
View File
@@ -0,0 +1,32 @@
{
callPackage,
lib,
haskell,
haskellPackages,
}:
let
hsPkg = haskellPackages.changelog-d;
addCompletions = haskellPackages.generateOptparseApplicativeCompletions [ "changelog-d" ];
haskellModifications = lib.flip lib.pipe [
addCompletions
haskell.lib.justStaticExecutables
];
mkDerivationOverrides = finalAttrs: oldAttrs: {
# nix-build -A changelog-d.tests
passthru.tests = {
basic = callPackage ./tests/basic.nix { changelog-d = finalAttrs.finalPackage; };
};
meta = oldAttrs.meta // {
homepage = "https://codeberg.org/fgaz/changelog-d";
maintainers = [ lib.maintainers.roberth ];
};
};
in
(haskellModifications hsPkg).overrideAttrs mkDerivationOverrides
@@ -0,0 +1,27 @@
{ runCommand, changelog-d }:
runCommand "changelog-d-basic-test"
{
nativeBuildInputs = [ changelog-d ];
}
''
mkdir changelogs
cat > changelogs/config <<EOF
organization: NixOS
repository: boondoggle
EOF
cat > changelogs/a <<EOF
synopsis: Support numbers with incrementing base-10 digits
issues: #1234
description: {
This didn't work before.
}
EOF
changelog-d changelogs >$out
cat -n $out
echo Checking the generated output
set -x
grep -F 'Support numbers with incrementing base-10 digits' $out >/dev/null
grep -F 'https://github.com/NixOS/boondoggle/issues/1234' $out >/dev/null
set +x
''
+54
View File
@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
nodejs,
pnpm_10,
npmHooks,
}:
let
pnpm = pnpm_10;
in
stdenv.mkDerivation (finalAttrs: {
pname = "changelogen";
version = "0.6.2";
src = fetchFromGitHub {
owner = "unjs";
repo = "changelogen";
tag = "v${finalAttrs.version}";
hash = "sha256-N6X9Wffl9WumCXvAt4y+vs3ZJY7NheK+O8BObmuIa/g=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 2;
hash = "sha256-UKSIfn2iR8Ydk9ViGCgWtspZr1FjTeW49UMwTcL57UA=";
};
nativeBuildInputs = [
nodejs
pnpm.configHook
npmHooks.npmInstallHook
];
buildPhase = ''
runHook preBuild
pnpm run build
runHook postBuild
'';
dontNpmPrune = true;
meta = {
description = "Beautiful Changelogs using Conventional Commits";
homepage = "https://github.com/unjs/changelogen";
changelog = "https://github.com/unjs/changelogen/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ higherorderlogic ];
mainProgram = "changelogen";
platforms = nodejs.meta.platforms;
};
})
+46
View File
@@ -0,0 +1,46 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "changelogger";
version = "0.6.1";
src = fetchFromGitHub {
owner = "MarkusFreitag";
repo = "changelogger";
rev = "v${version}";
sha256 = "sha256-XDiO8r1HpdsfBKzFLnsWdxte2EqL1blPH21137fNm5M=";
};
vendorHash = "sha256-E6J+0tZriskBnXdhQOQA240c3z+laXM5honoREjHPfM=";
ldflags = [
"-s"
"-w"
"-X github.com/MarkusFreitag/changelogger/cmd.BuildVersion=${version}"
"-X github.com/MarkusFreitag/changelogger/cmd.BuildDate=1970-01-01T00:00:00"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd changelogger \
--bash <($out/bin/changelogger completion bash) \
--fish <($out/bin/changelogger completion fish) \
--zsh <($out/bin/changelogger completion zsh)
'';
meta = {
description = "Tool to manage your changelog file in Markdown";
homepage = "https://github.com/MarkusFreitag/changelogger";
changelog = "https://github.com/MarkusFreitag/changelogger/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ tomsiewert ];
mainProgram = "changelogger";
};
}
+34
View File
@@ -0,0 +1,34 @@
{
lib,
fetchCrate,
rustPlatform,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "changelogging";
version = "0.7.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-orTUCBHacD0MQNfhOUWdh9RxT/9YNvgfCHFDr2eNQic=";
};
cargoHash = "sha256-2uYNwKjD0vX+C2Sj2epyTqe4sMqPa7cwVwoUHs3vtQE=";
passthru.updateScript = nix-update-script { };
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
meta = {
description = "CLI tool for building changelogs from fragments";
homepage = "https://github.com/nekitdev/changelogging";
changelog = "https://github.com/nekitdev/changelogging/releases/tag/v${version}";
platforms = lib.platforms.all;
license = lib.licenses.mit;
maintainers = [ lib.maintainers.nekitdev ];
mainProgram = "changelogging";
};
}
+27
View File
@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "changetower";
version = "1.0";
src = fetchFromGitHub {
owner = "Dc4ts";
repo = "ChangeTower";
rev = "v${version}";
hash = "sha256-P20kzsFTR6kVWUD6mt3T3sge/ioIYgeREfy40oxlDBU=";
};
vendorHash = "sha256-eA2gReP2PbCPHAQGjC/4CvalfczyCAuNNlS3zOHUT0E=";
meta = with lib; {
description = "Tools to watch for webppage changes";
homepage = "https://github.com/Dc4ts/ChangeTower";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "ChangeTower";
};
}
+50
View File
@@ -0,0 +1,50 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "changie";
version = "1.22.1";
src = fetchFromGitHub {
owner = "miniscruff";
repo = "changie";
rev = "v${version}";
hash = "sha256-JXVrOZKm8whmc3LkCDsbZkNcYMgiolp9dgnZFPYCtAs=";
};
vendorHash = "sha256-bUopfHd6/0dd3OuxQMW9ZNsZtVqnRSDRqZLkfaQq12I=";
nativeBuildInputs = [
installShellFiles
];
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd changie \
--bash <($out/bin/changie completion bash) \
--fish <($out/bin/changie completion fish) \
--zsh <($out/bin/changie completion zsh)
'';
meta = {
description = "Automated changelog tool for preparing releases with lots of customization options";
mainProgram = "changie";
homepage = "https://changie.dev";
changelog = "https://github.com/miniscruff/changie/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
figsoda
matthiasbeyer
];
};
}
+42
View File
@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule rec {
pname = "chaos";
version = "0.5.2";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "chaos-client";
tag = "v${version}";
hash = "sha256-YjwxInBEPgovSk5EZzpeNhp4/FRWf6prZnNqcyyFFJg=";
};
vendorHash = "sha256-c5J2cTzyb7CiBlS4vS3PdRhr6DhIvXE2lt40u0s6G0k=";
subPackages = [ "cmd/chaos/" ];
ldflags = [
"-s"
"-w"
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = "--version";
meta = {
description = "Tool to communicate with Chaos DNS API";
homepage = "https://github.com/projectdiscovery/chaos-client";
changelog = "https://github.com/projectdiscovery/chaos-client/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "chaos";
};
}
+42
View File
@@ -0,0 +1,42 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "charasay";
version = "3.3.0";
src = fetchFromGitHub {
owner = "latipun7";
repo = "charasay";
rev = "v${version}";
hash = "sha256-NB2GDDFH9IW/c0acMojYHuzPrx0J3tjlDqjQa6ZRbN4=";
};
cargoHash = "sha256-i2CvwQXKKfYLdK0tKf/w4TepPyMo99v1I+kIr00PWcY=";
nativeBuildInputs = [ installShellFiles ];
postPatch = ''
rm .cargo/config.toml
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd chara \
--bash <($out/bin/chara completions --shell bash) \
--fish <($out/bin/chara completions --shell fish) \
--zsh <($out/bin/chara completions --shell zsh)
'';
meta = with lib; {
description = "Future of cowsay - Colorful characters saying something";
homepage = "https://github.com/latipun7/charasay";
license = licenses.mit;
maintainers = with maintainers; [ hmajid2301 ];
mainProgram = "chara";
};
}
+65
View File
@@ -0,0 +1,65 @@
{
lib,
fetchFromGitHub,
python3Packages,
makeWrapper,
}:
python3Packages.buildPythonApplication rec {
pname = "charge-lnd";
version = "0.3.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "accumulator";
repo = "charge-lnd";
tag = "v${version}";
hash = "sha256-rACpIHVVq4q3iOEJgJbslCzEcP3qYrc3rZQ85YJfzoQ=";
};
build-system = with python3Packages; [
setuptools
];
propagatedBuildInputs = with python3Packages; [
aiorpcx
colorama
googleapis-common-protos
grpcio
protobuf
six
termcolor
];
nativeBuildInputs = [
makeWrapper
];
postInstall = ''
install README.md -Dt $out/share/doc/charge-lnd
wrapProgram $out/bin/charge-lnd \
--set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION "python"
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/charge-lnd --help > /dev/null
'';
env = {
PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python";
};
meta = {
description = "Simple policy-based fee manager for lightning network daemon";
homepage = "https://github.com/accumulator/charge-lnd";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
mmilata
mariaa144
];
mainProgram = "charge-lnd";
};
}
+37
View File
@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "charis-sil";
version = "6.200";
src = fetchzip {
url = "https://software.sil.org/downloads/r/charis/CharisSIL-${version}.zip";
hash = "sha256-q451lec/l13Uanmr8K/C55Cr3avRvqQUkPK/ZZ1kgHo=";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/truetype
install -Dm644 OFL.txt OFL-FAQ.txt README.txt FONTLOG.txt -t $out/share/doc/${pname}-${version}
runHook postInstall
'';
meta = with lib; {
homepage = "https://software.sil.org/charis";
description = "Family of highly readable fonts for broad multilingual use";
longDescription = ''
This Charis SIL font is essentially the same design as the SIL Charis font first released by SIL in 1997. Charis is similar to Bitstream Charter, one of the first fonts designed specifically for laser printers. It is highly readable and holds up well in less-than-ideal reproduction environments. It also has a full set of styles regular, italic, bold, bold italic. Charis is a serif, proportionally-spaced font optimized for readability in long printed documents.
The goal for this product was to provide a single Unicode-based font family that would contain a comprehensive inventory of glyphs needed for almost any Roman- or Cyrillic-based writing system, whether used for phonetic or orthographic needs. In addition, there is provision for other characters and symbols useful to linguists. This font makes use of state-of-the-art font technologies to support complex typographic issues, such as the need to position arbitrary combinations of base glyphs and diacritics optimally.
'';
license = licenses.ofl;
platforms = platforms.all;
maintainers = [ maintainers.f--t ];
};
}
+102
View File
@@ -0,0 +1,102 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
docker,
autoreconfHook,
coreutils,
makeWrapper,
gnused,
gnutar,
gzip,
findutils,
sudo,
nixosTests,
pkg-config,
fuse3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "charliecloud";
version = "0.38";
src = fetchFromGitHub {
owner = "hpc";
repo = "charliecloud";
tag = "v${finalAttrs.version}";
hash = "sha256-Mr2Qa1PRTarJ0I8nkH/Xsq8QN3OxOfL8tpl1lL1WV0c=";
};
nativeBuildInputs = [
autoreconfHook
makeWrapper
pkg-config
];
buildInputs = [
docker
fuse3
(python3.withPackages (ps: [
ps.lark
ps.requests
]))
];
configureFlags =
let
pythonEnv = python3.withPackages (ps: [
ps.lark
ps.requests
]);
in
[
"--with-python=${pythonEnv}/bin/python3"
"-disable-bundled-lark"
];
preConfigure = ''
patchShebangs test/
substituteInPlace configure.ac --replace-fail "/usr/bin/env" "${coreutils}/bin/env"
'';
makeFlags = [
"PREFIX=$(out)"
"LIBEXEC_DIR=lib/charliecloud"
];
# Charliecloud calls some external system tools.
# Here we wrap those deps so they are resolved inside nixpkgs.
postInstall = ''
for file in $out/bin/* ; do \
wrapProgram $file --prefix PATH : ${
lib.makeBinPath [
coreutils
docker
gnused
gnutar
gzip
findutils
sudo
]
}
done
'';
passthru.tests.charliecloud = nixosTests.charliecloud;
meta = {
description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
longDescription = ''
Charliecloud uses Linux user namespaces to run containers with no
privileged operations or daemons and minimal configuration changes on
center resources. This simple approach avoids most security risks
while maintaining access to the performance and functionality already
on offer.
'';
homepage = "https://hpc.github.io/charliecloud";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.bzizou ];
platforms = lib.platforms.linux;
};
})
+40
View File
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "charls";
version = "2.4.2";
src = fetchFromGitHub {
owner = "team-charls";
repo = "charls";
tag = version;
hash = "sha256-c1wrk6JLcAH7TFPwjARlggaKXrAsLWyUQF/3WHlqoqg=";
};
postPatch = ''
substituteInPlace src/charls-template.pc \
--replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
--replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
'';
nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
# note this only runs some basic tests, not the full test suite,
# but the recommended `charlstest -unittest` fails with an inscrutable C++ IO error
doCheck = true;
meta = with lib; {
homepage = "https://github.com/team-charls/charls";
description = "JPEG-LS library implementation in C++";
maintainers = with maintainers; [ bcdarwin ];
license = licenses.bsd3;
platforms = platforms.unix;
};
}
+37
View File
@@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "charm-freeze";
version = "0.2.2";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = "freeze";
rev = "v${version}";
hash = "sha256-1zc62m1uS8Bl6x54SG2///PWfiKbZood6VBibbsFX7I=";
};
vendorHash = "sha256-BEMVjPexJ3Y4ScXURu7lbbmrrehc6B09kfr03b/SPg8=";
ldflags = [
"-s"
"-w"
"-X=main.Version=${version}"
];
meta = {
description = "Tool to generate images of code and terminal output";
mainProgram = "freeze";
homepage = "https://github.com/charmbracelet/freeze";
changelog = "https://github.com/charmbracelet/freeze/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
caarlos0
maaslalani
];
};
}
+34
View File
@@ -0,0 +1,34 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "charm";
version = "0.12.6";
src = fetchFromGitHub {
owner = "charmbracelet";
repo = "charm";
rev = "v${version}";
sha256 = "sha256-RtUHJIMbodICEDIhjH/QZlAS7dxBsL/uNYA2IoObAg0=";
};
vendorHash = "sha256-V5azvQ8vMkgF2Myt6h5Gw09b+Xwg1XLyTImG52qQ+20=";
ldflags = [
"-s"
"-w"
"-X=main.Version=${version}"
];
meta = {
description = "Manage your charm account on the CLI";
homepage = "https://github.com/charmbracelet/charm";
changelog = "https://github.com/charmbracelet/charm/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ penguwin ];
mainProgram = "charm";
};
}
+32
View File
@@ -0,0 +1,32 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "chars";
version = "0.7.0";
src = fetchFromGitHub {
owner = "antifuchs";
repo = "chars";
rev = "v${version}";
sha256 = "sha256-mBtwdPzIc6RgEFTyReStFlhS4UhhRWjBTKT6gD3tzpQ=";
};
cargoHash = "sha256-Df+twOjzfq+Vxzuv+APiy94XmhBajgk+6+1BRFf+xm0=";
passthru = {
updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
};
meta = with lib; {
description = "Commandline tool to display information about unicode characters";
mainProgram = "chars";
homepage = "https://github.com/antifuchs/chars";
license = licenses.mit;
maintainers = with maintainers; [ bbigras ];
};
}
+74
View File
@@ -0,0 +1,74 @@
{
buildGoModule,
coreutils,
fetchFromGitHub,
git,
installShellFiles,
kubectl,
kubernetes-helm,
lib,
makeWrapper,
yamale,
yamllint,
}:
buildGoModule rec {
pname = "chart-testing";
version = "3.13.0";
src = fetchFromGitHub {
owner = "helm";
repo = "chart-testing";
rev = "v${version}";
hash = "sha256-59a86yR/TDAWGCsj3pbDjXJGMvyHYnjsnxzjWr61PuU=";
};
vendorHash = "sha256-aVXISRthJxxvtrfC0DpewLHCiJPh4tO+SKl3Q9uP14k=";
postPatch = ''
substituteInPlace pkg/config/config.go \
--replace "\"/etc/ct\"," "\"$out/etc/ct\","
'';
ldflags = [
"-w"
"-s"
"-X github.com/helm/chart-testing/v3/ct/cmd.Version=${version}"
"-X github.com/helm/chart-testing/v3/ct/cmd.GitCommit=${src.rev}"
"-X github.com/helm/chart-testing/v3/ct/cmd.BuildDate=19700101-00:00:00"
];
nativeBuildInputs = [
installShellFiles
makeWrapper
];
postInstall = ''
install -Dm644 -t $out/etc/ct etc/chart_schema.yaml
install -Dm644 -t $out/etc/ct etc/lintconf.yaml
installShellCompletion --cmd ct \
--bash <($out/bin/ct completion bash) \
--zsh <($out/bin/ct completion zsh) \
--fish <($out/bin/ct completion fish) \
wrapProgram $out/bin/ct --prefix PATH : ${
lib.makeBinPath [
coreutils
git
kubectl
kubernetes-helm
yamale
yamllint
]
}
'';
meta = with lib; {
description = "Tool for testing Helm charts";
homepage = "https://github.com/helm/chart-testing";
license = licenses.asl20;
maintainers = with maintainers; [ atkinschang ];
mainProgram = "ct";
};
}
+63
View File
@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
autoreconfHook,
bison,
flex,
openssl,
gnutls,
}:
stdenv.mkDerivation rec {
pname = "charybdis";
version = "4.1.2";
src = fetchFromGitHub {
owner = "charybdis-ircd";
repo = "charybdis";
rev = "${pname}-${version}";
sha256 = "1lndk0yp27qm8bds4jd204ynxcq92fqmpfb0kkcla5zgky3miks3";
};
patches = [
(fetchurl {
url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/d13eb723d7e9512fb2f2516e5934bd927a92eb2c/community/charybdis/fix-missing-include.patch";
hash = "sha256-8JXYuIjoHQg+l33OjseF5nnd5ZPagBA2/bSa3Il5Te4=";
})
];
postPatch = ''
substituteInPlace include/defaults.h --replace 'PKGLOCALSTATEDIR "' '"/var/lib/charybdis'
substituteInPlace include/defaults.h --replace 'ETCPATH "' '"/etc/charybdis'
'';
autoreconfPhase = "sh autogen.sh";
configureFlags = [
"--enable-epoll"
"--enable-ipv6"
"--enable-openssl=${openssl.dev}"
"--with-program-prefix=charybdis-"
];
nativeBuildInputs = [
autoreconfHook
bison
flex
];
buildInputs = [
openssl
gnutls
];
meta = with lib; {
description = "IRCv3 server designed to be highly scalable";
homepage = "https://github.com/charybdis-ircd/charybdis";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ lassulus ];
platforms = platforms.unix;
};
}
+41
View File
@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libatomic_ops,
boehmgc,
}:
stdenv.mkDerivation rec {
pname = "chase";
version = "0.5.2";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libatomic_ops
boehmgc
];
src = fetchurl {
url = "mirror://debian/pool/main/c/chase/chase_${version}.orig.tar.gz";
sha256 = "68d95c2d4dc45553b75790fcea4413b7204a2618dff148116ca9bdb0310d737f";
};
doCheck = true;
makeFlags = [
"-e"
"LIBS=-lgc"
];
meta = with lib; {
description = "Follow a symlink and print out its target file";
longDescription = ''
A commandline program that chases symbolic filesystems links to the original file
'';
homepage = "https://qa.debian.org/developer.php?login=rotty%40debian.org";
license = licenses.gpl2Plus;
maintainers = [ maintainers.polyrod ];
platforms = platforms.all;
mainProgram = "chase";
};
}
+43
View File
@@ -0,0 +1,43 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "chatblade";
version = "0.7.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-v6X5aqArhp33bm8JELDCUoxE3nsvla4I3n0ZLLMMeJI=";
};
doCheck = false; # there are no tests
pythonImportsCheck = [ "chatblade" ];
build-system = with python3Packages; [
setuptools
];
pythonRelaxDeps = true;
dependencies = with python3Packages; [
openai
platformdirs
pylatexenc
pyyaml
rich
tiktoken
];
meta = with lib; {
homepage = "https://github.com/npiv/chatblade/";
description = "CLI Swiss Army Knife for ChatGPT";
mainProgram = "chatblade";
license = licenses.gpl3Only;
maintainers = with maintainers; [ deejayem ];
};
}
+49
View File
@@ -0,0 +1,49 @@
{
lib,
appimageTools,
fetchurl,
writeScript,
}:
let
pname = "chatbox";
version = "1.16.3";
src = fetchurl {
url = "https://download.chatboxai.app/releases/Chatbox-${version}-x86_64.AppImage";
hash = "sha256-Vits1RCDAsaTglbFo1y2YeiNBGou9m6BScV+rMGp3Rw=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/xyz.chatboxapp.app.desktop $out/share/applications/chatbox.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/xyz.chatboxapp.app.png $out/share/icons/hicolor/512x512/apps/chatbox.png
substituteInPlace $out/share/applications/chatbox.desktop \
--replace-fail 'Exec=AppRun' 'Exec=chatbox' \
--replace-fail 'Icon=xyz.chatboxapp.app' 'Icon=chatbox'
'';
passthru.updateScript = writeScript "update-chatbox" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
version=$(curl -I -X GET https://chatboxai.app/install_chatbox/linux | grep -oP 'Chatbox-\K[0-9]+\.[0-9]+\.[0-9]+')
update-source-version chatbox $version
'';
meta = {
description = "AI client application and smart assistant";
homepage = "https://chatboxai.app";
downloadPage = "https://chatboxai.app/en#download";
changelog = "https://chatboxai.app/en/help-center/changelog";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [ c31io ];
mainProgram = "chatbox";
# Help porting to other platforms :)
platforms = [ "x86_64-linux" ];
};
}
+97
View File
@@ -0,0 +1,97 @@
{
buildNpmPackage,
lib,
autoPatchelfHook,
electron,
fetchFromGitHub,
gitUpdater,
makeWrapper,
ollama,
pkg-config,
stdenv,
vips,
}:
buildNpmPackage rec {
pname = "chatd";
version = "1.1.2";
src = fetchFromGitHub {
owner = "BruceMacD";
repo = "chatd";
rev = "v${version}";
hash = "sha256-6z5QoJk81NEP115uW+2ah7vxpDz8XQUmMLESPsZT9uU=";
};
makeCacheWritable = true; # sharp tries to build stuff in node_modules
ELECTRON_SKIP_BINARY_DOWNLOAD = true;
npmDepsHash = "sha256-jvGvhgNhY+wz/DFS7NDtmzKXbhHbNF3i0qVQoFFeB0M=";
dontNpmBuild = true; # missing script: build
nativeBuildInputs = [
makeWrapper
electron
pkg-config
]
++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook; # for onnx libs
buildInputs = [
(lib.getLib stdenv.cc.cc) # for libstdc++.so, required by onnxruntime
vips # or it will try to download from the Internet
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share}
cp -r . $out/share/chatd
for bin in ollama-darwin ollama-linux; do
makeWrapper ${lib.getExe ollama} $out/share/chatd/src/service/ollama/runners/$bin
done
makeWrapper ${lib.getExe electron} $out/bin/chatd \
--add-flags $out/share/chatd/src/index.js \
--chdir $out/share/chatd \
--set-default ELECTRON_FORCE_IS_PACKAGED 1
runHook postInstall
'';
postInstall = ''
substituteInPlace $out/share/chatd/node_modules/@xenova/transformers/src/env.js \
--replace-fail "import fs from 'fs';" "import fs from 'fs';import os from 'os';" \
--replace-fail 'path.dirname(path.dirname(url.fileURLToPath(import.meta.url)))' 'path.join(os.homedir(), ".cache", "chatd")'
rm -rf $out/share/electron{,-winstaller} $(find $out -name 'win32')
find $out/share/chatd/node_modules -name '*.exe' -or -name '*.dll' -or -name '*.pdb' -delete
rm -rf ${
lib.concatStringsSep " " (
(lib.optional (
!stdenv.hostPlatform.isx86_64
) "$out/share/chatd/node_modules/onnxruntime-node/bin/napi-v3/*/x64")
++ (lib.optional (
!stdenv.hostPlatform.isAarch64
) "$out/share/chatd/node_modules/onnxruntime-node/bin/napi-v3/*/arm64")
++ (lib.optional (
!stdenv.hostPlatform.isDarwin
) "$out/share/chatd/node_modules/onnxruntime-node/bin/napi-v3/darwin")
++ (lib.optional (
!stdenv.hostPlatform.isLinux
) "$out/share/chatd/node_modules/onnxruntime-node/bin/napi-v3/linux")
)
}
'';
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "Chat with your documents using local AI";
homepage = "https://github.com/BruceMacD/chatd";
changelog = "https://github.com/BruceMacD/chatd/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.lucasew ];
mainProgram = "chatd";
platforms = electron.meta.platforms;
};
}
+28
View File
@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
buildGoModule,
}:
buildGoModule rec {
pname = "chatgpt";
version = "1.3.5";
src = fetchFromGitHub {
owner = "j178";
repo = "chatgpt";
rev = "v${version}";
hash = "sha256-+U5fDG/t1x7F4h+D3rVdgvYICoQDH7dd5GUNOCkXw/Q=";
};
vendorHash = "sha256-/bL9RRqNlKLqZSaym9y5A+RUDrHpv7GBR6ubZkZMPS4=";
subPackages = [ "cmd/chatgpt" ];
meta = with lib; {
description = "Interactive CLI for ChatGPT";
homepage = "https://github.com/j178/chatgpt";
license = licenses.mit;
mainProgram = "chatgpt";
maintainers = with maintainers; [ Ruixi-rebirth ];
};
}
@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitHub,
jq,
curl,
glow,
makeWrapper,
}:
let
pname = "chatgpt-shell-cli";
# no tags
version = "master";
in
stdenv.mkDerivation {
inherit pname version;
src = fetchFromGitHub {
owner = "0xacx";
repo = "chatgpt-shell-cli";
tag = version;
hash = "sha256-hYLrUya4UCsIB1J/n+jp1jFRCEqnGFJOr3ATxm0zwdY=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -Dm755 chatgpt.sh -t $out/bin
runHook postInstall
'';
postInstall = ''
wrapProgram $out/bin/chatgpt.sh \
--prefix PATH : ${
lib.makeBinPath [
jq
curl
glow
]
}
'';
meta = with lib; {
homepage = "https://github.com/0xacx/chatGPT-shell-cli";
description = "Simple shell script to use OpenAI's ChatGPT and DALL-E from the terminal. No Python or JS required";
license = licenses.mit;
maintainers = with maintainers; [ jfvillablanca ];
};
}
+47
View File
@@ -0,0 +1,47 @@
{
lib,
stdenvNoCC,
fetchurl,
_7zz,
undmg,
}:
let
source = import ./source.nix;
in
stdenvNoCC.mkDerivation {
pname = "chatgpt";
inherit (source) version;
src = fetchurl source.src;
nativeBuildInputs = [
undmg
];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
mkdir -p "$out/bin"
cp -a ChatGPT.app "$out/Applications"
ln -s "$out/Applications/ChatGPT.app/Contents/MacOS/ChatGPT" "$out/bin/ChatGPT"
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Desktop application for ChatGPT";
homepage = "https://openai.com/chatgpt/desktop/";
changelog = "https://help.openai.com/en/articles/9703738-macos-app-release-notes";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ wattmto ];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
mainProgram = "ChatGPT";
};
}
+7
View File
@@ -0,0 +1,7 @@
{
version = "1.2025.203";
src = {
url = "https://persistent.oaistatic.com/sidekick/public/ChatGPT_Desktop_public_1.2025.203_1753492939.dmg";
hash = "sha256-m+KvDXcNz4M6MhgOGwsTGytXzAuC6WKd/Dr+3PESQtg=";
};
}
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl libxml2
XML_URL="https://persistent.oaistatic.com/sidekick/public/sparkle_public_appcast.xml"
XML_DATA=$(curl -s $XML_URL)
LATEST_VERSION=$(echo "$XML_DATA" | xmllint --xpath '/rss/channel/item[1]/*[local-name()="shortVersionString"]/text()' -)
DOWNLOAD_URL=$(echo "$XML_DATA" | xmllint --xpath 'string(//item[1]/enclosure/@url)' -)
HASH=$(nix-prefetch-url $DOWNLOAD_URL | xargs nix --extra-experimental-features nix-command hash convert --hash-algo sha256)
SOURCE_NIX="$(dirname ${BASH_SOURCE[0]})/source.nix"
cat > "${SOURCE_NIX}" << _EOF_
{
version = "$LATEST_VERSION";
src = {
url = "$DOWNLOAD_URL";
hash = "$HASH";
};
}
_EOF_
+70
View File
@@ -0,0 +1,70 @@
{
lib,
flutter332,
fetchFromGitHub,
autoPatchelfHook,
copyDesktopItems,
makeDesktopItem,
runCommand,
yq,
chatmcp,
_experimental-update-script-combinators,
gitUpdater,
}:
flutter332.buildFlutterApplication rec {
pname = "chatmcp";
version = "0.0.76";
src = fetchFromGitHub {
owner = "daodao97";
repo = "chatmcp";
tag = "v${version}";
hash = "sha256-MU2AFiIvc3Y27/nX/OqYs/VKkw50cqznMY2zUdys8ts=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
nativeBuildInputs = [
copyDesktopItems
autoPatchelfHook
];
desktopItems = [
(makeDesktopItem {
name = "chatmcp";
exec = "chatmcp %U";
icon = "chatmcp";
desktopName = "ChatMCP";
})
];
postInstall = ''
install -Dm0644 assets/logo.png $out/share/pixmaps/chatmcp.png
'';
passthru = {
pubspecSource =
runCommand "pubspec.lock.json"
{
nativeBuildInputs = [ yq ];
inherit (chatmcp) src;
}
''
cat $src/pubspec.lock | yq > $out
'';
updateScript = _experimental-update-script-combinators.sequence [
(gitUpdater { rev-prefix = "v"; })
(_experimental-update-script-combinators.copyAttrOutputToFile "chatmcp.pubspecSource" ./pubspec.lock.json)
];
};
meta = {
description = "AI chat client implementing the Model Context Protocol";
homepage = "https://github.com/daodao97/chatmcp";
mainProgram = "chatmcp";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = [ ];
};
}
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
{
enableAvifSupport ? false,
stdenv,
lib,
cmake,
pkg-config,
boost,
openssl,
libsecret,
libnotify,
libavif,
kdePackages,
autoPatchelfHook,
libpulseaudio,
}:
stdenv.mkDerivation {
nativeBuildInputs = [
cmake
pkg-config
kdePackages.wrapQtAppsHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
buildInputs =
(with kdePackages; [
qtbase
qtsvg
qt5compat
qtkeychain
qtimageformats
])
++ [
boost
openssl
libsecret
]
++ lib.optionals stdenv.hostPlatform.isLinux [
kdePackages.qtwayland
libnotify
]
++ lib.optional enableAvifSupport libavif;
runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [ libpulseaudio ];
preConfigure = ''
if [[ -f "$src/GIT_HASH" ]]; then
export GIT_HASH="$(cat $src/GIT_HASH)"
fi
'';
cmakeFlags = [
(lib.cmakeBool "BUILD_WITH_QT6" true)
(lib.cmakeBool "USE_SYSTEM_QTKEYCHAIN" true)
(lib.cmakeBool "CHATTERINO_UPDATER" false)
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p "$out/Applications"
mv bin/chatterino.app "$out/Applications/"
'';
}
+53
View File
@@ -0,0 +1,53 @@
{
lib,
callPackage,
fetchFromGitHub,
gitUpdater,
}:
(callPackage ./common.nix { }).overrideAttrs (
finalAttrs: _: {
pname = "chatterino2";
version = "2.5.4";
src = fetchFromGitHub {
owner = "Chatterino";
repo = "chatterino2";
tag = "v${finalAttrs.version}";
hash = "sha256-eozT3Lfra4i+q3pCxH0Z1v/3Y/FB5yJc/88tA90hTzI=";
fetchSubmodules = true;
leaveDotGit = true;
postFetch = ''
git -C $out rev-parse --short HEAD > $out/GIT_HASH
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
passthru = {
buildChatterino = args: callPackage ./common.nix args;
updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "beta";
};
};
meta = {
description = "Chat client for Twitch chat";
mainProgram = "chatterino";
longDescription = ''
Chatterino is a chat client for Twitch chat. It aims to be an
improved/extended version of the Twitch web chat. Chatterino 2 is
the second installment of the Twitch chat client series
"Chatterino".
'';
homepage = "https://github.com/Chatterino/chatterino2";
changelog = "https://github.com/Chatterino/chatterino2/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
supa
marie
];
};
}
)
+53
View File
@@ -0,0 +1,53 @@
{
lib,
chatterino2,
fetchFromGitHub,
gitUpdater,
}:
(chatterino2.buildChatterino {
enableAvifSupport = true;
}).overrideAttrs
(
finalAttrs: _: {
pname = "chatterino7";
version = "7.5.4";
src = fetchFromGitHub {
owner = "SevenTV";
repo = "chatterino7";
tag = "v${finalAttrs.version}";
hash = "sha256-zA198AIFIRx4qE5MZwrGOFFrpnVrZMVQx1SX0RJpDo4=";
fetchSubmodules = true;
leaveDotGit = true;
postFetch = ''
git -C $out rev-parse --short HEAD > $out/GIT_HASH
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
passthru.updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = "beta";
};
meta = {
description = "Chat client for Twitch chat";
mainProgram = "chatterino";
longDescription = ''
Chatterino is a chat client for Twitch chat. It aims to be an
improved/extended version of the Twitch web chat. Chatterino 7 is
a fork of Chatterino 2, which contains additional 7TV features
not found in Chatterino 2.
'';
homepage = "https://github.com/SevenTV/chatterino7";
changelog = "https://github.com/SevenTV/chatterino7/blob/${finalAttrs.src.rev}/CHANGELOG.c7.md";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
marie
supa
];
};
}
)
+88
View File
@@ -0,0 +1,88 @@
{
lib,
stdenv,
fetchFromGitLab,
appstream-glib,
desktop-file-utils,
itstool,
meson,
ninja,
pkg-config,
wrapGAppsHook4,
evolution-data-server,
feedbackd,
glibmm,
libsecret,
gnome-desktop,
gspell,
gtk4,
gtksourceview5,
gst_all_1,
libcmatrix,
libadwaita,
libphonenumber,
modemmanager,
pidgin,
protobuf,
sqlite,
plugins ? [ ],
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chatty";
version = "0.8.8";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "Chatty";
tag = "v${finalAttrs.version}";
hash = "sha256-pLdl44nLRFLH76499JcaKgXRpf51wqFm174gUa7noKc=";
};
nativeBuildInputs = [
appstream-glib
desktop-file-utils
itstool
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
evolution-data-server
feedbackd
glibmm
libsecret
gnome-desktop
gspell
gtk4
gtksourceview5
gst_all_1.gstreamer
libcmatrix
libadwaita
libphonenumber
modemmanager
pidgin
protobuf
sqlite
];
preFixup = ''
gappsWrapperArgs+=(
--prefix PURPLE_PLUGIN_PATH : ${lib.escapeShellArg (pidgin.makePluginPath plugins)}
${lib.concatMapStringsSep " " (p: p.wrapArgs or "") plugins}
)
'';
meta = with lib; {
description = "XMPP and SMS messaging via libpurple and ModemManager";
mainProgram = "chatty";
homepage = "https://gitlab.gnome.org/World/Chatty";
changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${finalAttrs.src.tag}/NEWS";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];
platforms = platforms.linux;
};
})
@@ -0,0 +1,75 @@
{
lib,
appimageTools,
fetchurl,
stdenvNoCC,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
}:
let
pname = "chatzone-desktop";
version = "5.4.1";
src = fetchurl {
url = "https://cdn1.ozone.ru/s3/chatzone-clients/ci/5.4.1/872/chatzone-desktop-linux-5.4.1.AppImage";
hash = "sha256-ONr8rIP7oXtafACkW4fDHfYew83F4R8un+hGdVI75iA=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
stdenvNoCC.mkDerivation {
inherit pname version;
src = appimageTools.wrapType2 { inherit pname version src; };
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
desktopItems = [
(makeDesktopItem {
name = "chatzone";
exec = "chatzone-desktop";
icon = "chatzone-desktop";
terminal = false;
desktopName = "Chatzone";
genericName = "Ozon corporate messenger";
comment = "Chatzone Desktop application for Linux";
categories = [
"Network"
"InstantMessaging"
"Chat"
];
startupWMClass = "Chatzone";
mimeTypes = [ "x-scheme-handler/mattermost" ];
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/
cp -r bin $out/bin
mkdir -p $out/share/chatzone-desktop/
cp ${appimageContents}/app_icon.png $out/share/chatzone-desktop/
cp -r ${appimageContents}/usr/share/icons $out/share
wrapProgram $out/bin/chatzone-desktop \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
runHook postInstall
'';
meta = {
description = "Ozon corporate messenger";
mainProgram = "chatzone-desktop";
homepage = "https://apps.o3team.ru/";
downloadPage = "https://apps.o3team.ru/";
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
license = lib.licenses.unfreeRedistributable;
maintainers = [ lib.maintainers.progrm_jarvis ];
platforms = [ "x86_64-linux" ];
};
}
@@ -0,0 +1,13 @@
Add the -m option to man's command line to augment the list of paths searched by man.
The required -m option is only available in the mandoc implementation.
--- a/adapter/protocol/man.nim
+++ b/adapter/protocol/man.nim
@@ -264,7 +264,7 @@ proc myOpen(cmd: string): tuple[ofile, efile: File] =
proc doMan(man, keyword, section: string) =
let sectionOpt = if section == "": "" else: ' ' & quoteShellPosix(section)
let cmd = "MANCOLOR=1 GROFF_NO_SGR=1 MAN_KEEP_FORMATTING=1 " &
- man & sectionOpt & ' ' & quoteShellPosix(keyword)
+ man & sectionOpt & " -m @out@ " & quoteShellPosix(keyword)
let (ofile, efile) = myOpen(cmd)
if ofile == nil:
+94
View File
@@ -0,0 +1,94 @@
{
lib,
stdenv,
fetchFromSourcehut,
makeBinaryWrapper,
curlMinimal,
mandoc,
ncurses,
nim,
pandoc,
pkg-config,
brotli,
zlib,
gitUpdater,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chawan";
version = "0.2.2";
src = fetchFromSourcehut {
owner = "~bptato";
repo = "chawan";
rev = "v${finalAttrs.version}";
hash = "sha256-pUwwqFvTtLAGFQG62W90hEH+yPN+ifa5BDRYNh/Jupg=";
};
patches = [ ./mancha-augment-path.diff ];
# Include chawan's man pages in mancha's search path
postPatch = ''
# As we need the $out reference, we can't use `replaceVars` here.
substituteInPlace adapter/protocol/man.nim \
--replace-fail '@out@' "$out"
'';
env.NIX_CFLAGS_COMPILE = toString (
lib.optional stdenv.cc.isClang "-Wno-error=implicit-function-declaration"
);
nativeBuildInputs = [
makeBinaryWrapper
nim
pandoc
pkg-config
brotli
];
buildInputs = [
curlMinimal
ncurses
zlib
];
buildFlags = [
"all"
"manpage"
];
installFlags = [
"DESTDIR=$(out)"
"PREFIX=/"
];
postInstall =
let
makeWrapperArgs = ''
--set MANCHA_CHA $out/bin/cha \
--set MANCHA_MAN ${mandoc}/bin/man
'';
in
''
wrapProgram $out/bin/cha ${makeWrapperArgs}
wrapProgram $out/bin/mancha ${makeWrapperArgs}
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgramArg = "--version";
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "Lightweight and featureful terminal web browser";
homepage = "https://sr.ht/~bptato/chawan/";
changelog = "https://git.sr.ht/~bptato/chawan/refs/v${finalAttrs.version}";
license = lib.licenses.unlicense;
platforms = lib.platforms.unix;
maintainers = [ ];
mainProgram = "cha";
};
})
+54
View File
@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromSourcehut,
meson,
ninja,
pkg-config,
wayland-scanner,
wayland-protocols,
wayland,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chayang";
version = "0.1.0";
src = fetchFromSourcehut {
owner = "~emersion";
repo = "chayang";
rev = "v${finalAttrs.version}";
hash = "sha256-3Vu9/Bu2WQe2Yx/2BK25pEpuPNwX6g3qoFUMznCFHeI=";
};
strictDeps = true;
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [
wayland-protocols
wayland
];
meta = with lib; {
description = "Gradually dim the screen on Wayland";
homepage = "https://git.sr.ht/~emersion/chayang/";
license = licenses.mit;
longDescription = ''
Gradually dim the screen on Wayland.
Can be used to implement a grace period before locking the session.
'';
maintainers = with maintainers; [ mxkrsv ];
platforms = platforms.linux;
mainProgram = "chayang";
};
})
+38
View File
@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
vala,
pkg-config,
blueprint-compiler,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chcase";
version = "2.3.0";
src = fetchFromGitHub {
owner = "ryonakano";
repo = "chcase";
tag = finalAttrs.version;
hash = "sha256-3TuAnuWV3Sm1T76Go4NWe2eA55ImR1TFYoCUnqfp9DE=";
};
nativeBuildInputs = [
meson
ninja
vala
pkg-config
blueprint-compiler
];
meta = {
homepage = "https://github.com/ryonakano/chcase";
description = "Small library to convert case of a given string";
license = lib.licenses.lgpl3Plus;
platforms = lib.platforms.linux;
maintainers = [ ];
};
})
+57
View File
@@ -0,0 +1,57 @@
{
lib,
fetchFromGitHub,
buildGoModule,
installShellFiles,
}:
buildGoModule rec {
pname = "cheat";
version = "4.4.2";
src = fetchFromGitHub {
owner = "cheat";
repo = "cheat";
tag = version;
sha256 = "sha256-GUU6VWfTmNS6ny12HnMr3uQmS7HI86Oupcmqx0MVAvE=";
};
subPackages = [ "cmd/cheat" ];
nativeBuildInputs = [ installShellFiles ];
patches = [
(builtins.toFile "fix-zsh-completion.patch" ''
diff --git a/scripts/cheat.zsh b/scripts/cheat.zsh
index befe1b2..675c9f8 100755
--- a/scripts/cheat.zsh
+++ b/scripts/cheat.zsh
@@ -62,4 +62,4 @@ _cheat() {
esac
}
-compdef _cheat cheat
+_cheat "$@"
'')
];
postInstall = ''
installManPage doc/cheat.1
installShellCompletion scripts/cheat.{bash,fish,zsh}
'';
vendorHash = null;
doCheck = false;
meta = with lib; {
description = "Create and view interactive cheatsheets on the command-line";
maintainers = with maintainers; [ mic92 ];
license = with licenses; [
gpl3
mit
];
inherit (src.meta) homepage;
mainProgram = "cheat";
};
}
@@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "check-jsonschema";
version = "0.34.0";
pyproject = true;
src = fetchFromGitHub {
owner = "python-jsonschema";
repo = "check-jsonschema";
tag = version;
hash = "sha256-NFP013ZG+Ltiqe+CLed4zeSQCS9E1r1L+b2AsYLMDW4=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
ruamel-yaml
jsonschema
requests
click
regress
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
pytest-xdist
responses
identify
];
disabledTests = [ "test_schemaloader_yaml_data" ];
pythonImportsCheck = [
"check_jsonschema"
"check_jsonschema.cli"
];
meta = {
description = "Jsonschema CLI and pre-commit hook";
mainProgram = "check-jsonschema";
homepage = "https://github.com/python-jsonschema/check-jsonschema";
changelog = "https://github.com/python-jsonschema/check-jsonschema/blob/${src.tag}/CHANGELOG.rst";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ sudosubin ];
};
}
+64
View File
@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
bison,
diffutils,
flex,
python3,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "check-sieve";
version = "0.11";
src = fetchFromGitHub {
owner = "dburkart";
repo = "check-sieve";
tag = "check-sieve-${version}";
hash = "sha256-vmfHXjcZ5J/+kO3/a0p8krLOuC67+q8SxcPJgW+UaTw=";
};
nativeBuildInputs = [
bison
flex
];
nativeCheckInputs = [
(python3.withPackages (p: [ p.setuptools ]))
];
# https://github.com/dburkart/check-sieve/issues/67
# Remove after the next (>0.10) release
env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
installPhase = ''
runHook preInstall
install -Dm755 check-sieve -t $out/bin
runHook postInstall
'';
preCheck = ''
substituteInPlace test/AST/util.py \
--replace-fail "/usr/bin/diff" "${diffutils}/bin/diff"
# Disable flaky tests: https://github.com/dburkart/check-sieve/issues/68
# Remove after the next (>0.10) release
rm -rf test/{6785,7352}
'';
doCheck = true;
passthru.updateScript = nix-update-script {
extraArgs = [ "--version-regex=check-sieve-(.*)" ];
};
meta = {
description = "Syntax checker for mail sieves";
mainProgram = "check-sieve";
homepage = "https://github.com/dburkart/check-sieve";
changelog = "https://github.com/dburkart/check-sieve/blob/${src.tag}/ChangeLog";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ eilvelia ];
};
}
+42
View File
@@ -0,0 +1,42 @@
{
fetchurl,
lib,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "check";
version = "0.15.2";
src = fetchurl {
url = "https://github.com/libcheck/check/releases/download/${version}/check-${version}.tar.gz";
sha256 = "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8";
};
# fortify breaks the libcompat vsnprintf implementation
hardeningDisable = lib.optionals (
stdenv.hostPlatform.isMusl && (stdenv.hostPlatform != stdenv.buildPlatform)
) [ "fortify" ];
# Test can randomly fail: https://hydra.nixos.org/build/7243912
doCheck = false;
meta = with lib; {
description = "Unit testing framework for C";
longDescription = ''
Check is a unit testing framework for C. It features a simple
interface for defining unit tests, putting little in the way of the
developer. Tests are run in a separate address space, so Check can
catch both assertion failures and code errors that cause
segmentation faults or other signals. The output from unit tests
can be used within source code editors and IDEs.
'';
homepage = "https://libcheck.github.io/check/";
license = licenses.lgpl2Plus;
mainProgram = "checkmk";
platforms = platforms.all;
};
}
+54
View File
@@ -0,0 +1,54 @@
{
lib,
python3Packages,
fetchFromGitHub,
versionCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "check50";
version = "3.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cs50";
repo = "check50";
tag = "v${version}";
hash = "sha256-3WxFdXECIjbTxHK65BFnxOroEYzu7iOJwm15gIjitLA=";
};
build-system = [
python3Packages.setuptools
];
dependencies = with python3Packages; [
attrs
beautifulsoup4
jinja2
lib50
packaging
pexpect
pyyaml
requests
setuptools # required for import pkg_resources
termcolor
];
pythonImportsCheck = [ "check50" ];
nativeCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
# no python tests
meta = {
description = "Testing tool for checking student CS50 code";
homepage = "https://cs50.readthedocs.io/projects/check50/en/latest/";
downloadPage = "https://github.com/cs50/check50";
changelog = "https://github.com/cs50/check50/releases/tag/${src.tag}";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ethancedwards8 ];
mainProgram = "check50";
};
}
+55
View File
@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
installShellFiles,
perl,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "checkbashisms";
version = "2.25.10";
src = fetchurl {
url = "mirror://debian/pool/main/d/devscripts/devscripts_${finalAttrs.version}.tar.xz";
hash = "sha256-pEzXrKV/bZbYG7j5QXjRDATZRGLt0fhdpwTDbCoKcus=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ perl ];
buildPhase = ''
runHook preBuild
substituteInPlace ./scripts/checkbashisms.pl \
--replace-fail '###VERSION###' "${finalAttrs.version}"
runHook postBuild
'';
installPhase = ''
runHook preInstall
installManPage scripts/checkbashisms.1
installShellCompletion --bash --name checkbashisms scripts/checkbashisms.bash_completion
install -D -m755 scripts/checkbashisms.pl $out/bin/checkbashisms
runHook postInstall
'';
passthru.tests = {
version = testers.testVersion { package = finalAttrs.finalPackage; };
};
meta = {
homepage = "https://sourceforge.net/projects/checkbaskisms/";
changelog = "https://salsa.debian.org/debian/devscripts/-/blob/v${finalAttrs.version}/debian/changelog";
description = "Check shell scripts for non-portable syntax";
mainProgram = "checkbashisms";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ kaction ];
platforms = lib.platforms.unix;
};
})
@@ -0,0 +1,49 @@
diff -rc checkinstall-orig/checkinstall checkinstall/checkinstall
*** checkinstall-orig/checkinstall 2009-03-12 13:40:24.000000000 +0100
--- checkinstall/checkinstall 2009-03-27 14:51:55.000000000 +0100
***************
*** 1635,1644 ****
# Find regular files first
[ $DEBUG -gt 0 ] && echo "debug: BASE_TMP_DIR: $BASE_TMP_DIR"
! cat /${TMP_DIR}/newfiles.tmp | egrep -v '^[-0-9][0-9]*[[:space:]]*(unlink|access)' | cut -f 3 | egrep -v "^(/dev|$BASE_TMP_DIR|/tmp)" | sort -u > /${TMP_DIR}/newfiles
# symlinks are next
! cat /${TMP_DIR}/newfiles.tmp | egrep -v '^[-0-9][0-9]*[[:space:]]*(unlink|access)' | cut -f 4 | egrep -v "^(/dev|$BASE_TMP_DIR|/tmp)" | grep -v "#success" | sort -u >> /${TMP_DIR}/newfiles
# Create another list of modified files that exclude all files the
# install script wanted to create but did not, e.g because they already
# existed.
--- 1635,1648 ----
# Find regular files first
[ $DEBUG -gt 0 ] && echo "debug: BASE_TMP_DIR: $BASE_TMP_DIR"
! cat /${TMP_DIR}/newfiles.tmp | egrep -v '^[-0-9][0-9]*[[:space:]]*(unlink|access|mkdir)' | cut -f 3 | egrep -v "^(/dev|$BASE_TMP_DIR|/tmp)" | sort -u > /${TMP_DIR}/newfiles
# symlinks are next
! cat /${TMP_DIR}/newfiles.tmp | egrep -v '^[-0-9][0-9]*[[:space:]]*(unlink|access|mkdir)' | cut -f 4 | egrep -v "^(/dev|$BASE_TMP_DIR|/tmp)" | grep -v "#success" | sort -u >> /${TMP_DIR}/newfiles
!
! # And finally newly created directories.
! cat /${TMP_DIR}/newfiles.tmp | egrep '^0[[:space:]]+mkdir[[:space:]]+' | cut -f 3 | egrep -v "^(/dev|$BASE_TMP_DIR|/tmp)" | sort -u >> /${TMP_DIR}/newfiles
!
# Create another list of modified files that exclude all files the
# install script wanted to create but did not, e.g because they already
# existed.
***************
*** 1738,1746 ****
cd /
( cat /${TMP_DIR}/newfiles | while read i; do
! if [ ! -d "${TRANSLROOT}${i}" -o -L "${TRANSLROOT}${i}" ]; then
! echo ".${i}"
! fi
done ) > /${TMP_DIR}/newfiles-tar
# Here it gets tricky: we need to copy all new files to our build dir,
--- 1742,1748 ----
cd /
( cat /${TMP_DIR}/newfiles | while read i; do
! echo ".${i}"
done ) > /${TMP_DIR}/newfiles-tar
# Here it gets tricky: we need to copy all new files to our build dir,
@@ -0,0 +1,25 @@
diff -rc checkinstall-orig/checkinstall checkinstall/checkinstall
*** checkinstall-orig/checkinstall 2009-03-27 17:07:26.000000000 +0100
--- checkinstall/checkinstall 2009-04-14 16:34:08.000000000 +0200
***************
*** 2607,2615 ****
chmod 755 $BUILD_DIR/DEBIAN/postrm
fi
! # Tag files in /etc to be conffiles
find $BUILD_DIR/etc 2> /dev/null | sed -e "s,$BUILD_DIR,," | \
! grep -v '^/etc$' > $BUILD_DIR/DEBIAN/conffiles
# The package will be saved here (ignores <epoch>: prefix):
DEBPKG="${DIRECTORIO_FUENTE}/${NAME}_`echo ${VERSION} | sed -e 's/^[0123456789]*://'`-${RELEASE}_${ARCHITECTURE}.deb"
--- 2607,2616 ----
chmod 755 $BUILD_DIR/DEBIAN/postrm
fi
! # Tag non-directory files in /etc to be conffiles
find $BUILD_DIR/etc 2> /dev/null | sed -e "s,$BUILD_DIR,," | \
! (while read fn; do test ! -d "$BUILD_DIR/$fn" && echo "$fn"; done) \
! > $BUILD_DIR/DEBIAN/conffiles
# The package will be saved here (ignores <epoch>: prefix):
DEBPKG="${DIRECTORIO_FUENTE}/${NAME}_`echo ${VERSION} | sed -e 's/^[0123456789]*://'`-${RELEASE}_${ARCHITECTURE}.deb"
@@ -0,0 +1,71 @@
diff -x '*~' -rc checkinstall-1.6.2pre20081116-orig/installwatch/create-localdecls checkinstall-1.6.2pre20081116/installwatch/create-localdecls
*** checkinstall-1.6.2pre20081116-orig/installwatch/create-localdecls 2008-11-16 17:18:58.000000000 +0100
--- checkinstall-1.6.2pre20081116/installwatch/create-localdecls 2009-09-18 17:01:13.000000000 +0200
***************
*** 46,52 ****
echo -n 'Checking libc version... '
gcc -Wall -o libctest libctest.c
VERSION=`ldd libctest | grep libc\\.so | awk '{print $1}'`
- rm libctest
echo $VERSION
echo "#define LIBC_VERSION \"$VERSION\"" >> $OUTFILE
if test "$VERSION" = 'libc.so.5' ; then
--- 46,51 ----
***************
*** 56,62 ****
if test "$VERSION" = 'libc.so.6' ; then
echo -n 'Checking glibc subversion... '
! tmp="`ldd /bin/sh | grep libc.so 2> /dev/null`"
LibcPath=`expr "$tmp" : '[^/]*\(/[^ ]*\)'`
tmp="`strings $LibcPath | grep -i 'c library'`"
OsLibcMajor=`expr "$tmp" : '.* \([0-9][0-9]*\)'`
--- 55,61 ----
if test "$VERSION" = 'libc.so.6' ; then
echo -n 'Checking glibc subversion... '
! tmp="`ldd libctest | grep libc.so 2> /dev/null`"
LibcPath=`expr "$tmp" : '[^/]*\(/[^ ]*\)'`
tmp="`strings $LibcPath | grep -i 'c library'`"
OsLibcMajor=`expr "$tmp" : '.* \([0-9][0-9]*\)'`
***************
*** 86,103 ****
6)
echo '#define GLIBC_MINOR 6' >> $OUTFILE
SUBVERSION='glibc-2.6' ;;
! 7)
echo '#define GLIBC_MINOR 7' >> $OUTFILE
SUBVERSION='glibc-2.7' ;;
*)
- echo 'Treated as glibc >= 2.1 (finger crossed)'
echo '#define GLIBC_MINOR 1' >> $OUTFILE
SUBVERSION='glibc-2.1' ;;
esac
;;
esac
fi
echo >> $OUTFILE
echo '#endif' >> $OUTFILE
--- 85,104 ----
6)
echo '#define GLIBC_MINOR 6' >> $OUTFILE
SUBVERSION='glibc-2.6' ;;
! 7|8|9|10|11|12|13|14|15|16|17|18)
echo '#define GLIBC_MINOR 7' >> $OUTFILE
SUBVERSION='glibc-2.7' ;;
*)
echo '#define GLIBC_MINOR 1' >> $OUTFILE
SUBVERSION='glibc-2.1' ;;
esac
;;
esac
+ echo $SUBVERSION
fi
+ rm libctest
+
echo >> $OUTFILE
echo '#endif' >> $OUTFILE
@@ -0,0 +1,162 @@
diff -rc checkinstall-orig/installwatch/installwatch.c checkinstall/installwatch/installwatch.c
*** checkinstall-orig/installwatch/installwatch.c 2009-03-12 13:40:24.000000000 +0100
--- checkinstall/installwatch/installwatch.c 2009-03-27 22:42:19.000000000 +0100
***************
*** 110,115 ****
--- 110,117 ----
static int (*true_setxattr)(const char *,const char *,const void *,
size_t, int);
static int (*true_removexattr)(const char *,const char *);
+ static ssize_t (*true_getxattr)(const char *,const char *,const void *,size_t);
+ static ssize_t (*true_lgetxattr)(const char *,const char *,const void *,size_t);
#if(GLIBC_MINOR >= 1)
***************
*** 369,374 ****
--- 371,378 ----
true_unlink = dlsym(libc_handle, "unlink");
true_utime = dlsym(libc_handle, "utime");
true_setxattr = dlsym(libc_handle, "setxattr");
+ true_getxattr = dlsym(libc_handle, "getxattr");
+ true_lgetxattr = dlsym(libc_handle, "lgetxattr");
true_utimes = dlsym(libc_handle, "utimes");
true_access = dlsym(libc_handle, "access");
***************
*** 3494,3499 ****
--- 3498,3587 ----
return result;
}
+ int getxattr (const char *pathname, const char *name,
+ const void *value, size_t size)
+ {
+ int result;
+ instw_t instw;
+ int status;
+
+ REFCOUNT;
+
+ if (!libc_handle)
+ initialize();
+
+ #if DEBUG
+ debug(2,"getxattr(%s,%s)\n",pathname,name);
+ #endif
+
+ /* We were asked to work in "real" mode */
+ if( !(__instw.gstatus & INSTW_INITIALIZED) ||
+ !(__instw.gstatus & INSTW_OKWRAP) ) {
+ result=true_getxattr(pathname,name,value,size);
+ return result;
+ }
+
+ instw_new(&instw);
+ instw_setpath(&instw,pathname);
+ instw_getstatus(&instw,&status);
+
+ #if DEBUG
+ instw_print(&instw);
+ #endif
+
+ if(status&INSTW_TRANSLATED) {
+ result=true_getxattr(instw.translpath,name,value,size);
+ } else {
+ result=true_getxattr(instw.path,name,value,size);
+ }
+
+ instw_delete(&instw);
+
+ return result;
+ }
+
+ int lgetxattr (const char *pathname, const char *name,
+ const void *value, size_t size)
+ {
+ int result;
+ instw_t instw;
+ int status;
+
+ REFCOUNT;
+
+ if (!libc_handle)
+ initialize();
+
+ #if DEBUG
+ debug(2,"lgetxattr(%s,%s)\n",pathname,name);
+ #endif
+
+ /* We were asked to work in "real" mode */
+ if( !(__instw.gstatus & INSTW_INITIALIZED) ||
+ !(__instw.gstatus & INSTW_OKWRAP) ) {
+ result=true_lgetxattr(pathname,name,value,size);
+ return result;
+ }
+
+ instw_new(&instw);
+ instw_setpath(&instw,pathname);
+ instw_getstatus(&instw,&status);
+
+ #if DEBUG
+ instw_print(&instw);
+ #endif
+
+ if(status&INSTW_TRANSLATED) {
+ result=true_lgetxattr(instw.translpath,name,value,size);
+ } else {
+ result=true_lgetxattr(instw.path,name,value,size);
+ }
+
+ instw_delete(&instw);
+
+ return result;
+ }
+
#if(GLIBC_MINOR >= 1)
int creat64(const char *pathname, __mode_t mode) {
***************
*** 3663,3668 ****
--- 3751,3791 ----
return result;
}
+ int __open_2(const char *pathname, int flags, ...) {
+ va_list ap;
+ mode_t mode;
+
+ #if DEBUG
+ debug(2,"__open_2(%s,%d,mode)\n",pathname,flags);
+ #endif
+
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+ va_end(ap);
+
+ /* The open() function in Glibc 2.9 is an always-inline
+ function that may call __open_2(), so it's important that
+ we handle it. I don't know what __open_2() is supposed to
+ do, but redirecting it to open() seems to work fine. */
+
+ return open(pathname,flags,mode);
+ }
+
+ int __open64_2(const char *pathname, int flags, ...) {
+ va_list ap;
+ mode_t mode;
+
+ #if DEBUG
+ debug(2,"__open64_2(%s,%d,mode)\n",pathname,flags);
+ #endif
+
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+ va_end(ap);
+
+ return open64(pathname,flags,mode);
+ }
+
struct dirent64 *readdir64(DIR *dir) {
struct dirent64 *result;
+87
View File
@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchurl,
gettext,
}:
stdenv.mkDerivation rec {
pname = "checkinstall";
version = "1.6.2";
src = fetchurl {
url = "https://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-${version}.tar.gz";
sha256 = "1x4kslyvfd6lm6zd1ylbq2pjxrafb77ydfjaqi16sa5qywn1jqfw";
};
patches = [
# Include empty directories created by the installation script in
# generated packages. (E.g., if a `make install' does `mkdir
# /var/lib/mystuff', then /var/lib/mystuff should be included in
# the package.)
./empty-dirs.patch
# Implement the getxattr(), lgetxattr(), __open_2() and
# __open64_2() functions. Needed for doing builds on Ubuntu 8.10.
./missing-functions.patch
# Don't include directories in the Debian `conffiles' file.
./etc-dirs.patch
# Support Glibc >= 2.8.
./glibc-check.patch
# Fix a `conflicting types for 'scandir'' error on Glibc 2.11.
./scandir.patch
# Fix a `conflicting types for 'readlink'' error since Glibc 2.19
./readlink-types.patch
# Fix BuildRoot handling in RPM builds.
./set-buildroot.patch
(fetchurl {
url = "https://salsa.debian.org/debian/checkinstall/-/raw/7175ae9de0e45f42fdd7f185ab9a12043d5efeeb/debian/patches/0016-Define-_STAT_VER-_MKNOD_VER-locally-dropped-in-glibc.patch";
hash = "sha256-InodEfvVMuN708yjXPrVXb+q8aUcyFhCLx35PHls0Eo=";
})
]
++
lib.optional (stdenv.hostPlatform.system == "x86_64-linux")
# Force use of old memcpy so that installwatch works on Glibc <
# 2.14.
./use-old-memcpy.patch;
buildInputs = [ gettext ];
hardeningDisable = [ "fortify" ];
preBuild = ''
makeFlagsArray=(PREFIX=$out)
substituteInPlace checkinstall --replace /usr/local/lib/checkinstall $out/lib/checkinstall
substituteInPlace checkinstallrc-dist --replace /usr/local $out
substituteInPlace installwatch/create-localdecls \
--replace /usr/include/unistd.h ${stdenv.cc.libc.dev}/include/unistd.h
'';
postInstall =
# Clear the RPATH, otherwise installwatch.so won't work properly
# as an LD_PRELOADed library on applications that load against a
# different Glibc.
''
patchelf --set-rpath "" $out/lib/installwatch.so
'';
meta = {
homepage = "https://checkinstall.izto.org/";
description = "Tool for automatically generating Slackware, RPM or Debian packages when doing `make install`";
maintainers = [ ];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
knownVulnerabilities = [
"CVE-2020-25031"
];
};
}
@@ -0,0 +1,19 @@
Extracted from Arch's patch
https://projects.archlinux.org/svntogit/community.git/tree/trunk/build-fix.patch?h=packages/checkinstall
diff -wbBur checkinstall-1.6.2/installwatch/installwatch.c checkinstall-1.6.2.my/installwatch/installwatch.c
--- checkinstall-1.6.2/installwatch/installwatch.c 2008-11-16 19:20:53.000000000 +0300
+++ checkinstall-1.6.2.my/installwatch/installwatch.c 2010-01-15 18:55:50.112716628 +0300
@@ -2938,13 +2938,8 @@
return result;
}
-#if (GLIBC_MINOR <= 4)
-int readlink(const char *path,char *buf,size_t bufsiz) {
- int result;
-#else
ssize_t readlink(const char *path,char *buf,size_t bufsiz) {
ssize_t result;
-#endif
instw_t instw;
int status;
@@ -0,0 +1,75 @@
diff -rc -x '*~' checkinstall-1.6.2-orig/installwatch/installwatch.c checkinstall-1.6.2/installwatch/installwatch.c
*** checkinstall-1.6.2-orig/installwatch/installwatch.c 2008-11-16 17:20:53.000000000 +0100
--- checkinstall-1.6.2/installwatch/installwatch.c 2010-02-08 16:35:17.000000000 +0100
***************
*** 100,106 ****
static int (*true_lxstat)(int,const char *,struct stat *);
static int (*true_scandir)( const char *,struct dirent ***,
int (*)(const struct dirent *),
! int (*)(const void *,const void *));
static int (*true_symlink)(const char *, const char *);
static int (*true_truncate)(const char *, TRUNCATE_T);
static int (*true_unlink)(const char *);
--- 100,106 ----
static int (*true_lxstat)(int,const char *,struct stat *);
static int (*true_scandir)( const char *,struct dirent ***,
int (*)(const struct dirent *),
! int (*)(const struct dirent **,const struct dirent **));
static int (*true_symlink)(const char *, const char *);
static int (*true_truncate)(const char *, TRUNCATE_T);
static int (*true_unlink)(const char *);
***************
*** 120,126 ****
static struct dirent64 *(*true_readdir64)(DIR *dir);
static int (*true_scandir64)( const char *,struct dirent64 ***,
int (*)(const struct dirent64 *),
! int (*)(const void *,const void *));
static int (*true_xstat64)(int,const char *, struct stat64 *);
static int (*true_lxstat64)(int,const char *, struct stat64 *);
static int (*true_truncate64)(const char *, __off64_t);
--- 120,126 ----
static struct dirent64 *(*true_readdir64)(DIR *dir);
static int (*true_scandir64)( const char *,struct dirent64 ***,
int (*)(const struct dirent64 *),
! int (*)(const struct dirent64 **,const struct dirent64 **));
static int (*true_xstat64)(int,const char *, struct stat64 *);
static int (*true_lxstat64)(int,const char *, struct stat64 *);
static int (*true_truncate64)(const char *, __off64_t);
***************
*** 3077,3085 ****
return result;
}
! int scandir( const char *dir,struct dirent ***namelist,
int (*select)(const struct dirent *),
! int (*compar)(const void *,const void *) ) {
int result;
if (!libc_handle)
--- 3077,3085 ----
return result;
}
! int scandir( const char * dir,struct dirent ***namelist,
int (*select)(const struct dirent *),
! int (*compar)(const struct dirent **,const struct dirent **) ) {
int result;
if (!libc_handle)
***************
*** 3691,3697 ****
int scandir64( const char *dir,struct dirent64 ***namelist,
int (*select)(const struct dirent64 *),
! int (*compar)(const void *,const void *) ) {
int result;
if (!libc_handle)
--- 3691,3697 ----
int scandir64( const char *dir,struct dirent64 ***namelist,
int (*select)(const struct dirent64 *),
! int (*compar)(const struct dirent64 **,const struct dirent64 **) ) {
int result;
if (!libc_handle)
@@ -0,0 +1,15 @@
https://build.opensuse.org/package/view_file/openSUSE:13.1/checkinstall/checkinstall-set_buildroot.patch
Index: checkinstall
===================================================================
--- a/checkinstall 2009-12-26 20:17:24.000000000 +0100
+++ b/checkinstall 2011-01-31 18:17:56.171593541 +0100
@@ -2463,7 +2463,7 @@ cd "$DIRECTORIO_FUENTE"
echo
echogn "Building RPM package..."
-$RPMBUILD -bb ${RPM_TARGET_FLAG}${ARCHITECTURE} "$SPEC_PATH" &> ${TMP_DIR}/rpmbuild.log
+$RPMBUILD --buildroot ${BUILDROOT} -bb ${RPM_TARGET_FLAG}${ARCHITECTURE} "$SPEC_PATH" &> ${TMP_DIR}/rpmbuild.log
okfail
if [ $? -gt 0 ]; then
@@ -0,0 +1,12 @@
diff -ru -x '*~' checkinstall-1.6.2-orig/installwatch/installwatch.c checkinstall-1.6.2/installwatch/installwatch.c
--- checkinstall-1.6.2-orig/installwatch/installwatch.c 2008-11-16 17:20:53.000000000 +0100
+++ checkinstall-1.6.2/installwatch/installwatch.c 2013-03-15 13:50:12.717646381 +0100
@@ -28,6 +28,8 @@
* <mail@fredemmott.co.uk>
*/
+asm (".symver memcpy, memcpy@GLIBC_2.2.5");
+
#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>
+36
View File
@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "checkip";
version = "0.47.7";
src = fetchFromGitHub {
owner = "jreisinger";
repo = "checkip";
tag = "v${version}";
hash = "sha256-bjKRHIY9OIEft//g8VHKHTUrwWn8UU38SPP4IdPbIQE=";
};
vendorHash = "sha256-hTjSOufyrOKdY6wdPXvbpXwgWiHIRI+t4ByqHBY6cPQ=";
ldflags = [
"-w"
"-s"
];
# Requires network
doCheck = false;
meta = {
description = "CLI tool that checks an IP address using various public services";
homepage = "https://github.com/jreisinger/checkip";
changelog = "https://github.com/jreisinger/checkip/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "checkip";
};
}
+62
View File
@@ -0,0 +1,62 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
pandoc,
go,
}:
buildGoModule rec {
pname = "checkmake";
version = "0.2.2";
src = fetchFromGitHub {
owner = "mrtazz";
repo = "checkmake";
tag = version;
hash = "sha256-Ql8XSQA/w7wT9GbmYOM2vG15GVqj9LxOGIu8Wqp9Wao=";
};
vendorHash = null;
nativeBuildInputs = [
installShellFiles
pandoc
];
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
"-X=main.buildTime=1970-01-01T00:00:00Z"
"-X=main.builder=nixpkgs"
"-X=main.goversion=go${go.version}"
];
postPatch = ''
substituteInPlace man/man1/checkmake.1.md \
--replace REPLACE_DATE 1970-01-01T00:00:00Z
'';
postBuild = ''
pandoc man/man1/checkmake.1.md -st man -o man/man1/checkmake.1
'';
postInstall = ''
installManPage man/man1/checkmake.1
'';
meta = with lib; {
description = "Experimental tool for linting and checking Makefiles";
mainProgram = "checkmake";
homepage = "https://github.com/mrtazz/checkmake";
changelog = "https://github.com/mrtazz/checkmake/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ vidbina ];
longDescription = ''
checkmake is an experimental tool for linting and checking
Makefiles. It may not do what you want it to.
'';
};
}
+30
View File
@@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "checkmate";
version = "0.9.3";
src = fetchFromGitHub {
owner = "adedayo";
repo = "checkmate";
rev = "v${version}";
hash = "sha256-XzzN4oIG6E4NsMGl4HzFlgAGhkRieRn+jyA0bT8fcrg=";
};
vendorHash = "sha256-D87b/LhHnu8xE0wRdB/wLIuf5NlqrVnKt2WAF29bdZo=";
subPackages = [ "." ];
meta = {
description = "Pluggable code security analysis tool";
mainProgram = "checkmate";
homepage = "https://github.com/adedayo/checkmate";
changelog = "https://github.com/adedayo/checkmate/releases/tag/v${version}";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ fab ];
};
}
+209
View File
@@ -0,0 +1,209 @@
{
lib,
fetchFromGitHub,
python3,
}:
let
py = python3.override {
packageOverrides = self: super: {
# Requires 'cyclonedx-python-lib = ">=6.0.0,<8.0.0"'
cyclonedx-python-lib = super.cyclonedx-python-lib.overridePythonAttrs (oldAttrs: rec {
version = "7.6.2";
src = fetchFromGitHub {
owner = "CycloneDX";
repo = "cyclonedx-python-lib";
tag = "v${version}";
hash = "sha256-nklizCiu7Nmynjd5WU5oX/v2TWy9xFVF4GkmCwFKZLI=";
};
# The `serializable` package eventually got renamed `py_serializable`, therefore we need
# to patch the imports;
# _c.f._ https://github.com/madpah/serializable/pull/155 .
postPatch = ''
find . -name '*.py' | xargs -I{} sed -i \
-e 's/serializable\./py_serializable\./g' \
-e 's/@serializable/@py_serializable/g' \
-e 's/from serializable/from py_serializable/g' \
-e 's/import serializable/import py_serializable/g' \
{}
'';
});
};
};
in
with py.pkgs;
python3.pkgs.buildPythonApplication rec {
pname = "checkov";
version = "3.2.474";
pyproject = true;
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = "checkov";
tag = version;
hash = "sha256-q0knnfogAPTqzEluOyU4OwXWnFYPilW9/NtuhZd50GA=";
};
pythonRelaxDeps = [
"asteval"
"bc-detect-secrets"
"bc-python-hcl2"
"boto3"
"botocore"
"cachetools"
"cloudsplaining"
"dpath"
"igraph"
"importlib-metadata"
"license-expression"
"networkx"
"openai"
"packageurl-python"
"packaging"
"pycep-parser"
"rustworkx"
"schema"
"termcolor"
"urllib3"
];
pythonRemoveDeps = [
# pythonRelaxDeps doesn't work with that one
"pycep-parser"
];
build-system = with py.pkgs; [ setuptools-scm ];
dependencies = with py.pkgs; [
aiodns
aiohttp
aiomultiprocess
argcomplete
asteval
bc-detect-secrets
bc-jsonpath-ng
bc-python-hcl2
boto3
cachetools
charset-normalizer
cloudsplaining
colorama
configargparse
cyclonedx-python-lib
docker
dockerfile-parse
dpath
flake8
gitpython
igraph
jmespath
jsonschema
junit-xml
license-expression
networkx
openai
packaging
policyuniverse
prettytable
pycep-parser
pyyaml
pydantic
rustworkx
semantic-version
spdx-tools
tabulate
termcolor
tqdm
typing-extensions
update-checker
];
nativeCheckInputs = with py.pkgs; [
aioresponses
distutils
mock
pytest-asyncio
pytest-mock
pytest-xdist
pytestCheckHook
responses
];
preCheck = ''
export HOME=$(mktemp -d);
'';
disabledTests = [
# No API key available
"api_key"
# Requires network access
"TestSarifReport"
"test_skip_mapping_default"
# Flake8 test
"test_file_with_class"
"test_dataclass_skip"
"test_typing_class_skip"
# Tests are comparing console output
"cli"
"console"
# Assertion error
"test_runner"
"test_same_resources_in_report_and_coordinator"
# AssertionError: assert ['<?xml versi...
"test_get_cyclonedx_report"
# Test fails on Hydra
"test_sast_js_filtered_files_by_ts"
# Timing sensitive
"test_non_multiline_pair_time_limit_creating_report"
];
disabledTestPaths = [
# Tests are pulling from external sources
# https://github.com/bridgecrewio/checkov/blob/f03a4204d291cf47e3753a02a9b8c8d805bbd1be/.github/workflows/build.yml
"integration_tests/"
"tests/ansible/"
"tests/arm/"
"tests/bicep/"
"tests/cloudformation/"
"tests/common/"
"tests/dockerfile/"
"tests/generic_json/"
"tests/generic_yaml/"
"tests/github_actions/"
"tests/github/"
"tests/kubernetes/"
"tests/sca_package_2"
"tests/terraform/"
"cdk_integration_tests/"
"sast_integration_tests"
# Performance tests have no value for us
"performance_tests/test_checkov_performance.py"
# No Helm
"dogfood_tests/test_checkov_dogfood.py"
];
pythonImportsCheck = [ "checkov" ];
postInstall = ''
chmod +x $out/bin/checkov
'';
meta = {
description = "Static code analysis tool for infrastructure-as-code";
homepage = "https://github.com/bridgecrewio/checkov";
changelog = "https://github.com/bridgecrewio/checkov/releases/tag/${version}";
longDescription = ''
Prevent cloud misconfigurations during build-time for Terraform, Cloudformation,
Kubernetes, Serverless framework and other infrastructure-as-code-languages.
'';
mainProgram = "checkov";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
anhdle14
fab
];
};
}
+40
View File
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
bison,
flex,
libsepol,
}:
stdenv.mkDerivation rec {
pname = "checkpolicy";
version = "3.8.1";
inherit (libsepol) se_url;
src = fetchurl {
url = "${se_url}/${version}/checkpolicy-${version}.tar.gz";
sha256 = "sha256-e0d8UW4mk9i2xRE4YyMXfx19tRwuBOttDejKKzYSDl0=";
};
nativeBuildInputs = [
bison
flex
];
buildInputs = [ libsepol ];
makeFlags = [
"PREFIX=$(out)"
"LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a"
];
meta =
removeAttrs libsepol.meta [
"outputsToInstall"
"name"
]
// {
description = "SELinux policy compiler";
mainProgram = "checkpolicy";
};
}
+31
View File
@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "checkpwn";
version = "0.5.6";
src = fetchCrate {
inherit pname version;
hash = "sha256-M0Jb+8rKn4KVuumNSsM6JEbSOoBOFy9mmXiCnUnDgak=";
};
cargoHash = "sha256-8ALu1Ij4o2fdsRWhlWu6rOIfHZjIIC+fHJ07XIbH66s=";
# requires internet access
checkFlags = [
"--skip=test_cli_"
];
meta = {
description = "Check Have I Been Pwned and see if it's time for you to change passwords";
homepage = "https://github.com/brycx/checkpwn";
changelog = "https://github.com/brycx/checkpwn/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ figsoda ];
mainProgram = "checkpwn";
};
}
+31
View File
@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "checkra1n";
version = "0.12.4";
src = fetchurl {
url = "https://assets.checkra.in/downloads/linux/cli/x86_64/dac9968939ea6e6bfbdedeb41d7e2579c4711dc2c5083f91dced66ca397dc51d/checkra1n";
sha256 = "07f5glwwlrpdvj8ky265q8fp3i3r4mz1vd6yvvxnnvpa764rdjfs";
};
dontUnpack = true;
installPhase = ''
install -dm755 "$out/bin"
install -m755 $src $out/bin/${pname}
'';
meta = with lib; {
description = "Jailbreak for iPhone 5s though iPhone X, iOS 12.0 and up";
homepage = "https://checkra.in/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ onny ];
platforms = platforms.linux;
};
}
+50
View File
@@ -0,0 +1,50 @@
{
lib,
fetchFromGitHub,
buildGoModule,
# tests
testers,
checksec,
}:
buildGoModule rec {
pname = "checksec";
version = "3.0.2";
src = fetchFromGitHub {
owner = "slimm609";
repo = "checksec";
tag = version;
hash = "sha256-ZpDowTmnK23+ZocOY1pJMgMSn7FiQQGvMg/gSbiL1nw=";
};
vendorHash = "sha256-7poHsEsRATljkqtfGxzqUbqhwSjVmiao2KoMVQ8LkD4=";
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
passthru.tests = {
version = testers.testVersion {
package = checksec;
inherit version;
};
};
meta = with lib; {
description = "Tool for checking security bits on executables";
mainProgram = "checksec";
homepage = "https://slimm609.github.io/checksec/";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [
thoughtpolice
globin
sdht0
];
};
}
+46
View File
@@ -0,0 +1,46 @@
{
lib,
stdenvNoCC,
fetchurl,
makeBinaryWrapper,
jre,
}:
stdenvNoCC.mkDerivation rec {
version = "11.0.1";
pname = "checkstyle";
src = fetchurl {
url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
sha256 = "sha256-e8ByK4En2zMguzvBFQR4RE9n9gA1ZIMdpLz7wJGXMpo=";
};
nativeBuildInputs = [ makeBinaryWrapper ];
buildInputs = [ jre ];
dontUnpack = true;
installPhase = ''
runHook preInstall
install -D $src $out/checkstyle/checkstyle-all.jar
makeWrapper ${jre}/bin/java $out/bin/checkstyle \
--add-flags "-jar $out/checkstyle/checkstyle-all.jar"
runHook postInstall
'';
meta = {
description = "Checks Java source against a coding standard";
mainProgram = "checkstyle";
longDescription = ''
checkstyle is a development tool to help programmers write Java code that
adheres to a coding standard. By default it supports the Sun Code
Conventions, but is highly configurable.
'';
homepage = "https://checkstyle.org/";
changelog = "https://checkstyle.org/releasenotes.html#Release_${version}";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [ pSub ];
platforms = jre.meta.platforms;
};
}
+121
View File
@@ -0,0 +1,121 @@
{
lib,
stdenv,
gettext,
fetchurl,
wrapGAppsHook3,
gnome-video-effects,
libcanberra-gtk3,
pkg-config,
gtk3,
glib,
clutter-gtk,
clutter-gst,
gst_all_1,
itstool,
vala,
docbook_xml_dtd_43,
docbook-xsl-nons,
appstream-glib,
libxslt,
gtk-doc,
adwaita-icon-theme,
librsvg,
totem,
gdk-pixbuf,
gnome,
gnome-desktop,
libxml2,
meson,
ninja,
dbus,
pipewire,
}:
stdenv.mkDerivation rec {
pname = "cheese";
version = "44.1";
outputs = [
"out"
"man"
"devdoc"
];
src = fetchurl {
url = "mirror://gnome/sources/cheese/${lib.versions.major version}/cheese-${version}.tar.xz";
hash = "sha256-XyGFxMmeVN3yuLr2DIKBmVDlSVLhMuhjmHXz7cv49o4=";
};
nativeBuildInputs = [
appstream-glib
docbook_xml_dtd_43
docbook-xsl-nons
gettext
gtk-doc
itstool
libxml2
libxslt # for xsltproc
meson
ninja
pkg-config
vala
wrapGAppsHook3
glib # for glib-compile-schemas
];
buildInputs = [
adwaita-icon-theme
clutter-gst
dbus
gnome-desktop
gnome-video-effects
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gtk3
libcanberra-gtk3
librsvg
pipewire # PipeWire provides a gstreamer plugin for using PipeWire for video
];
propagatedBuildInputs = [
clutter-gtk
gdk-pixbuf
glib
gst_all_1.gstreamer
];
preFixup = ''
gappsWrapperArgs+=(
# Effects
--prefix XDG_DATA_DIRS : "${gnome-video-effects}/share"
# vp8enc preset
--prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets"
# Thumbnailers
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
--prefix XDG_DATA_DIRS : "${totem}/share"
)
'';
# Fix GCC 14 build
# ../libcheese/cheese-flash.c:135:22: error: assignment to 'GtkWidget *' {aka 'struct _GtkWidget *'} from
# incompatible pointer type 'GObject *' {aka 'struct _GObject *'} [-Wincompatible-pointer-types]
env.NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
passthru = {
updateScript = gnome.updateScript {
packageName = "cheese";
};
};
meta = {
homepage = "https://gitlab.gnome.org/GNOME/cheese";
changelog = "https://gitlab.gnome.org/GNOME/cheese/-/blob/${version}/NEWS?ref_type=tags";
description = "Take photos and videos with your webcam, with fun graphical effects";
mainProgram = "cheese";
maintainers = with lib.maintainers; [ aleksana ];
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
};
}
@@ -0,0 +1,39 @@
From eb21fd64a19a0e10c4c3826fc71610fd5850fa2f Mon Sep 17 00:00:00 2001
From: Christoph Neidahl <christoph.neidahl@gmail.com>
Date: Sun, 13 Sep 2020 23:18:51 +0200
Subject: [PATCH 1/2] Drop baked-in build date for r13y
---
src/ct2util.d | 2 +-
src/ui/ui.d | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/ct2util.d b/src/ct2util.d
index 523cadc..e462b09 100644
--- a/src/ct2util.d
+++ b/src/ct2util.d
@@ -105,7 +105,7 @@ int main(string[] args) {
speeds.length = 32;
masks.length = 32;
void printheader() {
- enum hdr = "CheeseCutter 2 utilities" ~ com.util.versionInfo;
+ enum hdr = "CheeseCutter 2 utilities";
writefln(hdr);
writefln("\nUsage: \t%s <command> <options> <infile> <-o outfile>",args[0]);
writefln("\t%s import <infile> <infile2> <-o outfile>",args[0]);
diff --git a/src/ui/ui.d b/src/ui/ui.d
index e418dda..21af408 100644
--- a/src/ui/ui.d
+++ b/src/ui/ui.d
@@ -231,7 +231,7 @@ class Infobar : Window {
screen.clrtoeol(0, headerColor);
- enum hdr = "CheeseCutter 2.9" ~ com.util.versionInfo;
+ enum hdr = "CheeseCutter 2.9";
screen.cprint(4, 0, 1, headerColor, hdr);
screen.cprint(screen.width - 14, 0, 1, headerColor, "F12 = Help");
int c1 = audio.player.isPlaying ? 13 : 12;
--
2.25.4
@@ -0,0 +1,25 @@
From abc5e8786d41803300b56ef40c08db0d867eb01a Mon Sep 17 00:00:00 2001
From: Christoph Neidahl <christoph.neidahl@gmail.com>
Date: Sun, 13 Sep 2020 23:22:33 +0200
Subject: [PATCH 2/2] Prepend libSDL.dylib to macOS SDL loader
---
src/derelict/sdl/sdl.d | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/derelict/sdl/sdl.d b/src/derelict/sdl/sdl.d
index e31a52f..f7915b1 100644
--- a/src/derelict/sdl/sdl.d
+++ b/src/derelict/sdl/sdl.d
@@ -54,7 +54,7 @@ public:
super(
"sdl.dll",
"libSDL.so, libSDL.so.0, libSDL-1.2.so, libSDL-1.2.so.0",
- "@executable_path/../Frameworks/SDL.framework/SDL, /Library/Frameworks/SDL.framework/SDL, /System/Library/Frameworks/SDL.framework/SDL"
+ "@rpath/libSDL.dylib, @executable_path/../Frameworks/SDL.framework/SDL, /Library/Frameworks/SDL.framework/SDL, /System/Library/Frameworks/SDL.framework/SDL"
);
}
--
2.25.4
+75
View File
@@ -0,0 +1,75 @@
{
stdenv,
lib,
fetchFromGitHub,
acme,
ldc,
patchelf,
SDL,
}:
stdenv.mkDerivation {
pname = "cheesecutter";
version = "unstable-2021-02-27";
src = fetchFromGitHub {
owner = "theyamo";
repo = "CheeseCutter";
rev = "84450d3614b8fb2cabda87033baab7bedd5a5c98";
sha256 = "sha256:0q4a791nayya6n01l0f4kk497rdq6kiq0n72fqdpwqy138pfwydn";
};
patches = [
./0001-Drop-baked-in-build-date-for-r13y.patch
]
++ lib.optional stdenv.hostPlatform.isDarwin ./0002-Prepend-libSDL.dylib-to-macOS-SDL-loader.patch;
nativeBuildInputs = [
acme
ldc
]
++ lib.optional (!stdenv.hostPlatform.isDarwin) patchelf;
buildInputs = [ SDL ];
makefile = "Makefile.ldc";
installPhase = ''
for exe in {ccutter,ct2util}; do
install -D $exe $out/bin/$exe
done
mkdir -p $out/share/cheesecutter/example_tunes
cp -r tunes/* $out/share/cheesecutter/example_tunes
install -Dm444 arch/fd/ccutter.desktop -t $out/share/applications
for res in $(ls icons | sed -e 's/cc//g' -e 's/.png//g'); do
install -Dm444 icons/cc$res.png $out/share/icons/hicolor/''${res}x''${res}/apps/cheesecutter.png
done
'';
postFixup =
let
rpathSDL = lib.makeLibraryPath [ SDL ];
in
if stdenv.hostPlatform.isDarwin then
''
install_name_tool -add_rpath ${rpathSDL} $out/bin/ccutter
''
else
''
rpath=$(patchelf --print-rpath $out/bin/ccutter)
patchelf --set-rpath "$rpath:${rpathSDL}" $out/bin/ccutter
'';
meta = with lib; {
description = "Tracker program for composing music for the SID chip";
homepage = "https://github.com/theyamo/CheeseCutter/";
license = licenses.gpl2Plus;
platforms = [
"x86_64-linux"
"i686-linux"
"x86_64-darwin"
];
maintainers = with maintainers; [ OPNA2608 ];
};
}
+30
View File
@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "chelf";
version = "0.2.2";
src = fetchFromGitHub {
owner = "Gottox";
repo = "chelf";
rev = "v${version}";
sha256 = "0xwd84aynyqsi2kcndbff176vmhrak3jmn3lfcwya59653pppjr6";
};
installPhase = ''
mkdir -p $out/bin
mv chelf $out/bin/chelf
'';
meta = with lib; {
description = "Change or display the stack size of an ELF binary";
homepage = "https://github.com/Gottox/chelf";
license = licenses.bsd2;
maintainers = with maintainers; [ dtzWill ];
mainProgram = "chelf";
};
}
+51
View File
@@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
unstableGitUpdater,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "chemacs2";
version = "0-unstable-2023-01-20";
src = fetchFromGitHub {
owner = "plexus";
repo = "chemacs2";
rev = "c2d700b784c793cc82131ef86323801b8d6e67bb";
hash = "sha256-/WtacZPr45lurS0hv+W8UGzsXY3RujkU5oGGGqjqG0Q=";
};
outputs = [
"out"
"doc"
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
install -t $out/share/site-lisp/chemacs2/ -Dm644 init.el early-init.el chemacs.el
install -t $doc/share/doc/chemacs2/ -Dm644 README.org CHANGELOG.md
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://github.com/plexus/chemacs2";
description = "Emacs version switcher, improved";
longDescription = ''
Chemacs 2 is an Emacs profile switcher, it makes it easy to run multiple
Emacs configurations side by side.
Think of it as a bootloader for Emacs.
'';
license = with lib.licenses; [ gpl3Plus ];
maintainers = [ ];
platforms = lib.platforms.all;
};
})
+61
View File
@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libX11,
gtk2,
fig2dev,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "chemtool";
version = "1.6.14";
src = fetchurl {
url = "http://ruby.chemie.uni-freiburg.de/~martin/${pname}/${pname}-${version}.tar.gz";
sha256 = "hhYaBGE4azNKX/sXzfCUpJGUGIRngnL0V0mBNRTdr8s=";
};
nativeBuildInputs = [
pkg-config
wrapGAppsHook3
];
buildInputs = [
libX11
gtk2
fig2dev
];
# Workaround build on -fno-common toolchains like upstream gcc-10.
# Otherwise built fails as:
# ld: inout.o:/build/chemtool-1.6.14/ct1.h:279: multiple definition of
# `outtype'; draw.o:/build/chemtool-1.6.14/ct1.h:279: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
preFixup = ''
gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ fig2dev ]}")
'';
meta = with lib; {
homepage = "http://ruby.chemie.uni-freiburg.de/~martin/chemtool/";
description = "Draw chemical structures";
longDescription = ''
Chemtool is a program for drawing organic molecules. It runs under the X
Window System using the GTK widget set.
Most operations in chemtool can be accomplished using the mouse - the
first (usually the left) button is used to select or place things, the
middle button modifies properties (e.g. reverses the direction of a bond),
and the right button is used to delete objects.
The program offers essentially unlimited undo/redo, two text fonts plus
symbols, seven colors, drawing at several zoom scales, and square and
hexagonal backdrop grids for easier alignment.
'';
license = licenses.mit;
maintainers = [ ];
platforms = platforms.linux;
};
}
@@ -0,0 +1,122 @@
{
"@esbuild/aix-ppc64@npm:0.25.8": "37fc14b17214c1f6bf41175029b62a43664a6a5a5b802614fe1d837bbf7abf5eaf2f6b735b6a446ebcfabb632e038c8ad9cccd87a259c45a1846689f8527874a",
"@esbuild/android-arm64@npm:0.25.8": "e367e989238292ccee72013511dde1aef2d2160d8d5d669a12272f693cf9a0970fac9d7835178b3c46ed6936a0c4b29d21d58ed11851a3697bf98b4320be4b74",
"@esbuild/android-arm@npm:0.25.8": "cbfa2c802d8931e5f4d06582f20573cb34774ab713b4712c37eb15bfab6f90b693878b661de2a3bb9c81eecf45b37e0ddf2e9c79ef4ff932bbc37da588c40183",
"@esbuild/android-x64@npm:0.25.8": "1d4b900dd2f43790415745d20ae6cadb53e9412911578aaf43462277169c22800eca1f49a9f8ce9c37236e1691279494f91967d28310720707911910ec765013",
"@esbuild/darwin-arm64@npm:0.25.8": "a8a50e303056e668e99370a88d1744de4a83e62e2f3f7fcf2ff611142346505229568b0ec5edda93ec96e33e842a585880a312790553202750f123d9636fa97d",
"@esbuild/darwin-x64@npm:0.25.8": "9806fe9d54f3228a01f535e7c51aea26bd1bab3c5d64d5f77f4606de44f361f049222776d32bfd262d45991b7aecca645ed576ea338edbf4f8044b22b3e331ad",
"@esbuild/freebsd-arm64@npm:0.25.8": "8e6cbdd45819390ecdb62a70a4f119a9269a90895f3e1237788b36a512248a756233ef59f55f9033658af372a196f0edc3567f078f1387e150238d2bd51f733b",
"@esbuild/freebsd-x64@npm:0.25.8": "3f920c686037f825859a2fe82104085f4b254b77821cc71a71db512ef0679dd01481c136c3f7057ba7250daff2458aa3ffd101cc28cb5fff2d55270ba5930ec8",
"@esbuild/linux-arm64@npm:0.25.8": "234edc9f815cdc74d21c6a90a3542c941deeaf3a24b408c74a4651616bd270383ba5a15eaef837ab347a374032c7028fc29e4f1da0becb33f0b8dd8f744934d7",
"@esbuild/linux-arm@npm:0.25.8": "dc6dc225ae278cb3383e11d9829d22f301e1b79f2ed4efde1a01896ae67e45efde98caa61f10cb425a809e9b61e9a4651b60d2b6a3e9ad6174519e8ce74bc02a",
"@esbuild/linux-ia32@npm:0.25.8": "1c780012035552e27adea34d11f959a3ddd4a4d576cddd03d320b1db18110e777c1adca2c6d10affd587a4454900d3ffcad9371956855e56739babdc2e4edcd3",
"@esbuild/linux-loong64@npm:0.25.8": "d3d39691d301d144c7d61f52163a2fe64caaf928f4117d906707dc1456f3d88d1a7a3b16fb988ccfc0b0bc203f4bcd56665a9c7405dc380b3165a26ab195b9ec",
"@esbuild/linux-mips64el@npm:0.25.8": "437e51b2be977cf7774114e04c141e3c0f1ceb7f12b961b7b3ac7f99c4e203afdd74c41e072ecdc4bab3cde4f14feedd78653727d1b2013ed3611bd89117ee8c",
"@esbuild/linux-ppc64@npm:0.25.8": "29d2e344b1c8b767518d25b23eb9e98d85deae1f2def2e01c1939536ac7d1fc9e92749a8d29b29277b3340d3613e4b0f96213c6aa2de7e06885a19d3d269870a",
"@esbuild/linux-riscv64@npm:0.25.8": "82b2ef7fd5a00b465da97bd797246269d7460ed710c0533517a1f8ad8e32527f405509b2ce27e29f8f3df1affa04e45cf5d1a71205f69dab5c1a27118cf10fb8",
"@esbuild/linux-s390x@npm:0.25.8": "74168a6e8927d12c883dba56006f5277f8888c7b1b5e4d132a3c235b8629c3015b4715968ba128a79ff55c9f08a23df84fe44047e8cda4366b9699c5c45f27a4",
"@esbuild/linux-x64@npm:0.25.8": "d531002ac2ead0bdb293ec1a4eceea687d37815e298196af2471107cdd4c1f76ef7d12417052b51852b80f66111abfb5ad8375c58b97da92306b975e9a8f0649",
"@esbuild/netbsd-arm64@npm:0.25.8": "55626924ae946a6225707062648aabb79c70d61e7e094b067338ea1adf72493b502e99e59440fe0d3abfe20eb36c33f78115815d63e72fa99f5e90146c2ee5d9",
"@esbuild/netbsd-x64@npm:0.25.8": "d03122aaa3e9a8bda686bc4120820805b5d9701099458a2c928ee1a292fabcc47df0cb178c8c428edb78a058e75cf7c0d80fa25b71fb91db43d73fe6e4062c41",
"@esbuild/openbsd-arm64@npm:0.25.8": "113ed8722788986b5b703c791bb9c954e80a861b92f453c66c79318d71cc6eac509c1dc79d20671b4af92165eee05a28eb7b3122537d8701447d30f58c428942",
"@esbuild/openbsd-x64@npm:0.25.8": "dfa68d80d68ae825de85aeccc118724ced6b232dcf25da6d862ba03abda2f55e75483dccbf8cb3a7338e7882a05e5425fcf5a902b7dced72c9f1a9c2650912bd",
"@esbuild/openharmony-arm64@npm:0.25.8": "8dab5710d93ad4a78a34a0016f6ea0bf2e16489845f9895ecaf354c1c3db209bed8f05a31309b95c358bfeaea53829605f4e315e9a53dae4d9fdb58e31ca4688",
"@esbuild/sunos-x64@npm:0.25.8": "ccc940bd687d1f6d320d2538ac594b7fe5e291e194380a8b392dd2348d738cf8d322f9f62bcea82b3809f98796a0a004cd02ba9c4d563e5e336665e1ec8e1e1d",
"@esbuild/win32-arm64@npm:0.25.8": "b0a9a86548d4a62e68b12a89e21aaadda3d6d3e96541a2714b74df370cc344e1a2d91604998a26951da28c2f932bd2ee033adc9346bb232622c3ac419107136a",
"@esbuild/win32-ia32@npm:0.25.8": "5880e933c8fb8dc1de1225128c171ea64f4b27fe52fc11ed9cfe6b0ca8ae091c2703d4cb629f08c06731810c46f48cf881516d0d54b3ac408dec34586ea84d27",
"@esbuild/win32-x64@npm:0.25.8": "9e98fe0e7eef7a0e774ab761c59d520ea1c997a7a6e4c7f9cbc967471a4a7ffb14bc27c60d2aa10796c4e945c3da2613fcc297054566fe3f5191e1250691d622",
"@img/sharp-darwin-arm64@npm:0.34.3": "c5ed848f3cecaced50be6d1805cfb23586299f119a9917880c3f590b7ddd54b930e493c73480d13452503101168f92a0dc85ccc5b19b330470a5fe69e1fcf206",
"@img/sharp-darwin-x64@npm:0.34.3": "7e892ca052c8eb9002fb6e86e0a7893aff909e0f203f6ada7a67f4ca7e189631203189700a498ab3401280f5c042f5b08c3f7bc713192a97228864e9c4527743",
"@img/sharp-libvips-darwin-arm64@npm:1.2.0": "35d0d475da11fdfd7f5b5f7f1de4376ac04de6d6e0879833f71b2fa305b9d58c96ee464cf234060506ef9b1e2eabe5c09c302e818f8899b2ced1fcb7f85c01eb",
"@img/sharp-libvips-darwin-x64@npm:1.2.0": "e853f3b8a19d815af553b703e1d6d70abec525c61f3f19cc8a9d50d3749bc563b7f255307709b7c0836f76b110948489d3a9a3932d2fbc1775a083a56979bf56",
"@img/sharp-libvips-linux-arm64@npm:1.2.0": "ec53e3e62c9351e28ea0e4c26a1d8ab257ac003e8184b1757b79c2a240baecec2452e0dbca08c8227fd01c498801c428230261fdb86198e873e07347d741c3c7",
"@img/sharp-libvips-linux-arm@npm:1.2.0": "a2f9822cb2ac5b315f2a02c59ebdb235f6c45251207795f83f1a92db696a9deced882dc752bdddd1eab98da5d7d1d1e9968ae142313ff09960b7ae30b760ba07",
"@img/sharp-libvips-linux-ppc64@npm:1.2.0": "e90e1c46e6020f3a96562dd526549af2fabff46a1576f2e7af003be4b5efeb6fc8caa8e303e2eeb58129c938be31e0bf067736072479f2298152230cecd5fce4",
"@img/sharp-libvips-linux-s390x@npm:1.2.0": "2cf62c8b285effd3a3ec8854bc5fd78af162459294a6d9847af33d6bdeacfbad81cb0bec68b76889b148306a8a28492b4d44e6c96b778d0879349180191d758d",
"@img/sharp-libvips-linux-x64@npm:1.2.0": "ca342d07d1f0d22559f26bdcc0354f87a845ef19c69c22e37d9e23d71de15159f50d01183e8e7ea75e0ccfb6c7be9406741414a1f3534ec4aba10e51f0d7dffd",
"@img/sharp-libvips-linuxmusl-arm64@npm:1.2.0": "aa248f0c8602b0a17fdb5c1b00ce7dbb09f05b94a45ee7f226eaebfa459d4ee3fd407c62244902e15699927943c511a7fe045b575185ecc9b585987b64ae6cb1",
"@img/sharp-libvips-linuxmusl-x64@npm:1.2.0": "811071647c5129a1ead1e54b8f4672061bbbc1177d1d49127c755848e81f21bcbf5bf438c0e53118e731be5e000235904de3b5cf305053de015b56609a059371",
"@img/sharp-linux-arm64@npm:0.34.3": "3e8d53f54789b3d98dc14bf696917ff50f8c8c355aedc0dc90890ca764259bafec7390eabe262ce843eab8b74e0c128858128ce614e0b85dcba28d6b9ce3ea3f",
"@img/sharp-linux-arm@npm:0.34.3": "563c48ee129e5f3c6afed71ffba9c79a4369e7967e7b3a4a97d9b1e5aefa511873d3cd7a568ec42cd5968ea76f89ab93ee65c1363170af50559b620bfdb89d5b",
"@img/sharp-linux-ppc64@npm:0.34.3": "5973f8c522f33f826efff4052e253ec554882db54421a00f2636594e9ccc27e16dfb865f8de101678cb07b1a2d31b516ce4a88b65132ecc1101d07b6cc1bd571",
"@img/sharp-linux-s390x@npm:0.34.3": "284d2fcd9cc297b27ec135b0c63d5a6170cb17be378d92c75ec19b6034e7ed5801cab04ca17d445a80b073d67c4f9fe809334f5d4edf533c2d81d66d5d882ef3",
"@img/sharp-linux-x64@npm:0.34.3": "a370c04ca6d4145e6d6529d84b133d80e88d408e4483ba168e5993e5b4c0cbd2db57d4e53aca0bfa43320b571ff8bd70c22d8d7f5fadb5e5df1ded91393ae71d",
"@img/sharp-linuxmusl-arm64@npm:0.34.3": "c63d8afda1a7d4810bdc19473b6235313d923f8763a8dfc182465b63b8e4805769a9e92a8b2136f0235e07ae1b1ab63adfa904bb833d64f0495108dfc180a475",
"@img/sharp-linuxmusl-x64@npm:0.34.3": "9500e8f5d0ab96395a8d522920f25d4376d928ec58e88b3a5dbce5249c26efec046d20845bee8e9233fbff5287cfa979cfc079bc608342d257a6827be6cc0322",
"@img/sharp-wasm32@npm:0.34.3": "840dd97d3151b2189c3d0ee0746c139cbdd0441d5d5dfc87d2dd9970fc2c5448a3815c3110c64009998d165ca6dc7b5d58811b98b2c1e4ab0a1eb5ad97275f1e",
"@img/sharp-win32-arm64@npm:0.34.3": "adc7d18a8334ca1fea09c877dc9493e75a9018f73dc63038c8ccef7535a272c0aa3c2a9867a49a223703747149fb1fe57ef8580dd6098f0f33c602a876a48e1b",
"@img/sharp-win32-ia32@npm:0.34.3": "eef220adf1240429f72d9a9aadc22ccb741889785fa025396cfed41603364990b5f3841cee4d60525b22e65f36c7416297581300c873268fe2b7bb67087ada73",
"@img/sharp-win32-x64@npm:0.34.3": "5a5d2624bea7a31393b5a89738ad22a2b020a67f5e5b9eb40063510b514e8516b0fb4e320ff9eb1d32fa2ee3b4c3a0387333d051da28d93957116cbbd63b5fe0",
"@libsql/darwin-arm64@npm:0.4.7": "161ac6b537e39e33c65a7f06c16152ccd5077129b8321b5d0082e008054c47dbc32563d39a47e223d09994457211582ff3760ffa5523f2dd3cfac1dd726a577a",
"@libsql/darwin-x64@npm:0.4.7": "45c85d00566507f19474f9ae4b6453fa8fff10994147751df2dd2177edf9961520af54156d2d41b23cdfaaf2b219ea4ebd4b44a868e890088fc2283c1224752b",
"@libsql/linux-arm64-gnu@npm:0.4.7": "c4126b0d717b45a8d1d66797bd7447fdaf53631277dac0250e0aa0267e279493b114b3823407e49da0e2928d6595d3a28370acb99c43424e8bc7e11434cae5f8",
"@libsql/linux-arm64-musl@npm:0.4.7": "13eef982caf2b73cebabde76b8e209ddea27d2ff0e6228a56704a50ad41975ff03a15d90bec6ccc908cb16355d685903719676f7a91c92d20a68eecff4a4f0b6",
"@libsql/linux-x64-gnu@npm:0.4.7": "524bf04f98f7a91e343b294262a627a965f626082b63b998c8019d105380caa2435e240f6085103751f87919ac2415aba97075696822915bf1a4e4492d9376f5",
"@libsql/linux-x64-musl@npm:0.4.7": "227cddb499cbbf677c1dfaeeb8bd787d4c6d4cbf50c94ac1632348f26b412d2f8bacdb0131050c507d1961f96f8bbff2d8b7949f26f1dcebb61e115da9253aa0",
"@napi-rs/system-ocr-darwin-arm64@npm:1.0.2": "a1a0ea7044baa9589f26e55c661b1491c4dfe8c5cced82c31d00e86d297dacc61bd76042438069d97dd810808f7d3dd78fc449b898c90653af19b298084cf0f5",
"@napi-rs/system-ocr-darwin-x64@npm:1.0.2": "92b68b7e6a4be82b24fcc952d2c820e07bf68fb625d3c69edbcbf13227be508302f87ba9b0ff50d415c76ac16493d11040b6cc55a5b25f4414f3af5c00ab4597",
"@napi-rs/system-ocr-win32-arm64-msvc@npm:1.0.2": "5c6945c5053380ee33df277df77ac813cc44763e9f305ea0b0990d3960269676ffe88bdd33038fa378d055c9986b7ecc31cbabc7f8fb51e077c59364a9ea29ec",
"@napi-rs/system-ocr-win32-x64-msvc@npm:1.0.2": "9d6ebdaa753cea6f6e2e5b1b01ba293a7cd79ffd265bf5144f96f09bd596df21612662d7f62973886dd75725a029971cc3f11451ab95933bca5441b02593f352",
"@parcel/watcher-android-arm64@npm:2.5.1": "f99d569e4f6cf78a1b0097fb9d4682cb201a74370ae440c531da4e1d5021e46141bfcdf8ef708b51a5b9cb1c30f78eea933ce75216d5eeb7b969a2ad27c68e4a",
"@parcel/watcher-darwin-arm64@npm:2.5.1": "973c7ef3c94608da9cd1b20b18b9a7de2fb46fe44553731fe372b640de524491976150d0845f3d5953b74ed8ea469cb8d18a48651d0e5fb82f549a6b46b54f79",
"@parcel/watcher-darwin-x64@npm:2.5.1": "848c5516aed9c36e14751200dbbf57e83c0bd46cdab0932df33db120e66b9596de18eeb98980e319efde84014f67d9e7924d7555383d8ffcefe35c501166b84b",
"@parcel/watcher-freebsd-x64@npm:2.5.1": "cbd2b7884bc92422edabc0c74c3fbc06512bb7300fc137aaff2e96f46f61e5272265a0b5d230acc82a0e777b0c11661f0b8b7f89a9342c0920b752436dd2c750",
"@parcel/watcher-linux-arm-glibc@npm:2.5.1": "f2e1ec14dbb0f85a84a75f55fd7721598694976ba3ad439832b57e558b0d9240cc80ff83053fb8cf7caffb0592d51bb39d325112763ec1734924b49d4ba9c144",
"@parcel/watcher-linux-arm-musl@npm:2.5.1": "83344c7ecda2e79db59d711bcee0c3fa26922989139c031bd762cf3d5bfb191797e22e9ed6072690b822dfd62629623ba4e7eedb3c41930a987fc3d4106000e1",
"@parcel/watcher-linux-arm64-glibc@npm:2.5.1": "562231feb159a294752378bebecc69a2d33366a9d877835844578799f8536398006e0e570849f9e2db04085a3ea82131459cd10fd6b42dea10cd73bd0c9ca13e",
"@parcel/watcher-linux-arm64-musl@npm:2.5.1": "f62db52a90ebbaa29ca9900e6b9bd3fc6e5c650741bbde9a2742cbc332c678b753fc6a596d67659394fd9262aa826463ea667d18cc554bcaaac9e8da1a2a29d0",
"@parcel/watcher-linux-x64-glibc@npm:2.5.1": "425e557991fde5092d6a9e20be71810600415e5fa157dca0b39bd8db86653d3ee7b037305261c8782d1a065f2a64d235e17b57876b26f5bb0dd7a9bdbe364690",
"@parcel/watcher-linux-x64-musl@npm:2.5.1": "4dbb066ba9478c8b8de39e3c1083cbb74f86f03eaf4445603e69909d6c072134644316faa20a2445419b9fe1a8063ade7b5331a5766d807ee0b15b8a70c59a2d",
"@parcel/watcher-win32-arm64@npm:2.5.1": "e015314d6b9b727cbe25eedf963ca8b23bf6d4e78d3c28008bd0d2657940ad54a271330486df3a93a5f1a30f2b8d052d14415b85cc7e7b747c6c73b5dc055628",
"@parcel/watcher-win32-ia32@npm:2.5.1": "920b6ad6a2095aeb9c2d329c5118472a3c14669fa93eaa99aa8050c76c5c2d3d76d92677167ed748c2ac5487c568d5df16d5d94f4bc7c354094fccd8e0d6350c",
"@parcel/watcher-win32-x64@npm:2.5.1": "8f1c8e41ec9f86e4dcd0d4db0a077742d5dcc853f15ea888387183e34e2efcff09fd1cc9ec46fc1121b9ad4ddc0e221283f2ffb23cfd7dbcbb8b03060b461963",
"@rolldown/binding-android-arm64@npm:1.0.0-beta.34": "98334e08fe3f9acafa1e0c337d74138a93892dbb2b03e53b79ab3fff5cecb34406493af97e454b3c76e27ac1f9f65496d54cf7c904a2cdba4bf1eabddb5bbd50",
"@rolldown/binding-darwin-arm64@npm:1.0.0-beta.34": "d753421b3ee4da8ed6b67072064947a17122e138609652ce5534e97aff420e63a463c2fab0a678a1b0483b1e323c8392d671e5c8b415ade92f54e98235ebde62",
"@rolldown/binding-darwin-arm64@npm:1.0.0-beta.9-commit.d91dfb5": "a4636b96d36bfaccc655f9de258cef17daedd025463309657ed213b63b4226aeb6901eaa05d00d577e486bfb4d4ef99ee1457d8d7a8b5170afe07c86d2a5c18d",
"@rolldown/binding-darwin-x64@npm:1.0.0-beta.34": "cf850d66c40157d49976ee646096d4979b6c8c50aed67375936d3e485bafaadc694df232293bcbd2bcad247e983dac6ed0d26bb756e0abaa685c0e04282ed806",
"@rolldown/binding-darwin-x64@npm:1.0.0-beta.9-commit.d91dfb5": "a7b89d92f33ad9a718de70c56452dc481962e5396b32d66cbc08e588f45fa090ed6e3b7d8fc2ec641acf3de2a550b6d05416b14179ed4fcc8d336fdbd697d40b",
"@rolldown/binding-freebsd-x64@npm:1.0.0-beta.34": "3c0585c8ca34a77631f7606c15e653db95b3f56bdeb1a656f350d0ae82b1d136d4b74cc2d87e4efd1994571b59710b349ca373b2c3a6880fc7294cb39febc5cf",
"@rolldown/binding-freebsd-x64@npm:1.0.0-beta.9-commit.d91dfb5": "7da382e43eeada73dec31bb63680432f129fa17efed7ed211da0c9915a89c9dfa2e8ec35aa7f07a4be99a36eb14df67059a375ac4bc5e6a5cdc16e02f7a9bd3c",
"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-beta.34": "69d123591deefdc017ac863cc95c37186eec31fe92fd9e7b2fe5080fa569bb201ae1f0c42bdd57fb0561f9210e296bc83a0e82df6d21a1ea419af0b47620db70",
"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-beta.9-commit.d91dfb5": "cb5a7635fc2c39049c1fba8376d3b23f58240dbe2cbdc127d0dc8f2b8900537298bb8b52abde5b6e941cf22d8f69466433048db573c683947bf797f92f28baee",
"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-beta.34": "4cdea4f975d4424c488a83d0cf8027091b639a2b5ce9f11d5792c83f19906fdb63f4f162750b3406b3cd82b2c19dd7035d25c1ac4ca897b44f071a1a8dfc4251",
"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-beta.9-commit.d91dfb5": "8ff267e66b1f59e9317d5b9d89e00a3e11172ae5b5cca17985e92cd52672ef59cd2d6292263700ff8edb02b53420865f655e6ed7f4b4ad8680e4ee0d99dcf5a7",
"@rolldown/binding-linux-arm64-musl@npm:1.0.0-beta.34": "bd8369aa12b55ea1be91b0bd6a392861dbb1fe59db6ff2f346a15336ae42abf4627e4f875b57057421a72e1e47b785f70a912050f9fe780905d9603b203b8fc1",
"@rolldown/binding-linux-arm64-musl@npm:1.0.0-beta.9-commit.d91dfb5": "7b320fbdc870cb7f2f75e89058ac50a675c05236df12739b98ce287ad07cce53474699bf19b729577c3de62d80c2fbd988cbbb8bc29e06c88fc42a8ece176b19",
"@rolldown/binding-linux-x64-gnu@npm:1.0.0-beta.34": "7308f80b58203ba3e10e7a6a1354f684f8961f1ffb1cfbb6a110c245b855ae8d762ee796986b86b0de0fd4b4b1572e09dceb256234866f1d4727a457d2702cdf",
"@rolldown/binding-linux-x64-gnu@npm:1.0.0-beta.9-commit.d91dfb5": "99679e1c7e290c7d747d6deb420357522fb0fab1fd022cf79f84534243af2eac15988c8ef5d1b50c679fdc915788360bf744c4e0c9e47952aa0985f23ee58e80",
"@rolldown/binding-linux-x64-musl@npm:1.0.0-beta.34": "27154a7af28f34f97f1c325727c1caf97c6270ea812f349720333aa5eb8ec1379741ab2705758a55f52891b1d79f4b68892078f290b36aa5edb8bc3679f36435",
"@rolldown/binding-linux-x64-musl@npm:1.0.0-beta.9-commit.d91dfb5": "2ce172ea44980ca6b86636a13cce7d70104e25f75caaa0c4d6d9199721825a896a74b11bc32fecbc2756aa829d7e10f4701b2f3544b77cfa4da3c2cea0d72e1c",
"@rolldown/binding-openharmony-arm64@npm:1.0.0-beta.34": "00d2a12a4984502ed5ed6950562cded24cde56ed615c6ac5c198880fb72c86506e1f4b7743443da5480d7f268b9d74e7eb789d429749f416f3ab6b4bb5ba167c",
"@rolldown/binding-wasm32-wasi@npm:1.0.0-beta.34": "8bb90733a13691de5315fc3924b0ce6cb96ece6c8b24406c0818c931a880b9d55c3e5c66a5e707382a4329c406878400fd041098b42d0921035efca2a163e96a",
"@rolldown/binding-wasm32-wasi@npm:1.0.0-beta.9-commit.d91dfb5": "3516b21ab1982990435d550a23c153393ce1a2c9308b6df6614438c14ef1206d50c5e7dd214c403a42c9f4e695b574122abc8009df5171ebb79e685da14e7562",
"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-beta.34": "9feac1757ce2724d289be23539b497bb206cc5582d69397626d40ac1d1831c6bbcc68498502921489990ffcb879036528d130a0969d3b4608b207d9dedd5ae0a",
"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-beta.9-commit.d91dfb5": "17086030865bbfb6668d04f882926035fc1f72db81c3415a8f81e6196b9f849eabd6f2a62066e83f87255fcec106fe274353c8f5ff9c782417b6eddc664a129c",
"@rolldown/binding-win32-ia32-msvc@npm:1.0.0-beta.34": "0302a7fbe7d77352545ad3970e2b7f1c091f7fbd02d278d07e7c825377291a435eef84d67bc3a1e0e8e3fdfef3b6c59d8b9670318e683df08758f5ba7a801c5a",
"@rolldown/binding-win32-ia32-msvc@npm:1.0.0-beta.9-commit.d91dfb5": "ecd226ec05f9f863d97de98ca4d7cb9026bcb0cd2fff12e325209664eaca1fa131744ad72d1352b522567adfe4967ca73e50987f96ab475b50e9b96456dd50cf",
"@rolldown/binding-win32-x64-msvc@npm:1.0.0-beta.34": "70bbbc04e01c437a58c89f7b8ec249a9e43eb7b4336323efaf7abf46fa6445f087ee1286edb454658b9f4f4e54daf906059cc8484613be2d5b174c905dc44518",
"@rolldown/binding-win32-x64-msvc@npm:1.0.0-beta.9-commit.d91dfb5": "9e50f65fb7ad451a6eb4f9305650605e7a4efdd6873ad9412520edb8fd4c7f0bb67aa9922dbf1bad055c01a0de677eace73abf4285409cb9defae93956a83b24",
"@rollup/rollup-linux-x64-gnu@npm:4.45.1": "baf9081b367a5f557cfcd17ae60b196c00a933e87c5b16045efa312cb142518c91706ae3e6a4be1d09f7fbf2b133d386fc4ff3f6dd2d5b7149ac139af4a63391",
"@swc/core-darwin-arm64@npm:1.11.21": "6f228ce5497f8b797d9b838af6d51c8fc27d1643d13b033ed762ab5247047da91efa3e61f38040b5ff326bfb6af0ed663f5ec8319574db1c0e355d64c9c2b665",
"@swc/core-darwin-x64@npm:1.11.21": "8f7fcf910f17ab6d30fe55d7498f0ff2ac47e1e0fad749e01151891d5257f49c6354dae31917cc5097230940f9a068fcd981441e7c9581b1373e9e9c4d1ff9aa",
"@swc/core-linux-arm-gnueabihf@npm:1.11.21": "5f0d964b13b3c138fe0b3249b852db4330707d4584ed5d5b0b71fb72023e3b35f3faa88c6b8f49970f7adee57976e7e1fc9115be194b91f435249b6531602e1c",
"@swc/core-linux-arm64-gnu@npm:1.11.21": "203995730e55bfe640055a7adbb0c6b133c698aa018394d0338d00d311b10f874e46cdc0579585fb443505a3361b3da185436ad9fea553ecbed697a4f810ea7e",
"@swc/core-linux-arm64-musl@npm:1.11.21": "9618139c32eefd5acf184fc0c5e09986f170cec1069296a274c32b694a5a2129ae7aa21b8d016d5c186574929f05d456c6f4babdd0e528021dee4c51605da2d8",
"@swc/core-linux-x64-gnu@npm:1.11.21": "886a4f4a3ad6d0d3b437a250bf36b0395b34f4731381ce1cbbe43b05fb7ab4aa12a23c3f0e33bc4b2703ebcdad9a7e3fc18b7481a79e372ecc331c1e3eca1437",
"@swc/core-linux-x64-musl@npm:1.11.21": "069f33ba7b9376494f7345efed1c845e201857bbe5ba165ca8026760989344eaf0e5efbbc7f711a6c776385aa5ad383cee75543687c024854acb296c4e4752c1",
"@swc/core-win32-arm64-msvc@npm:1.11.21": "05ea5df6614075ec8487a91cb047a30aebeef3f142232a2feb0a475c85f2d64a876aef4183849f43480b9b5786afad7b3cb2bc1f53060d71ab6ff439a71317f3",
"@swc/core-win32-ia32-msvc@npm:1.11.21": "ad1ba754c36131238f2ac8ec51ffc4b987888b45b3008c0fbdd31d85d6fc039f8dd9c5d188c24cb72c4f4f345090a4dcfbcbfd840e954b7aeeb2974e0baf0e4a",
"@swc/core-win32-x64-msvc@npm:1.11.21": "0fb0c108c2e4a3bd82251f7552c9daa8c243829617bee7d954d1b0e021214184ead5c08dd108b3a5ac2d501797db794246a25867970ef2082f844f47b5b25070",
"dmg-license@npm:1.0.11": "feef35cfb45270a72daadcca9584be5cb840f924448b9d4e543fcd61f1b6d471151049f277c91de1d8b003fad6203d0176066a5f427a01df5fb073402cb8c8b7",
"iconv-corefoundation@npm:1.1.7": "bc6f08ac421e5e92ed20f3825f123fd705e036612b2b6aa687958de753c06f32e54f0203ef55540869e3ee189eaea15e43a2757f3a90e555c4dd512c9422da43",
"lightningcss-darwin-arm64@npm:1.30.1": "bbdce4ee14b3952699e6d07c539cf4bd678853bfd974e3107742198dac38dfa6d40c6ea80163a7026aff662dd7d3a462a2bee9a18448c75c788659ceebe2746a",
"lightningcss-darwin-x64@npm:1.30.1": "6b88c182be0de82858983ec374093c2cb13cd58139456e25be215fc55a7a8cbfcd6f7487bee1507fc024988a1f324d7cb26b3f195893d5a69ccaf252dc9094eb",
"lightningcss-freebsd-x64@npm:1.30.1": "731a96282db6afff3f57e8cbb73f51d06455231868b3b311a772ee11ead9c57538fc217d0956df4f177dbb805fa4fc761734440f6d2bb8965963b21f06bf63c1",
"lightningcss-linux-arm-gnueabihf@npm:1.30.1": "fcf07f54c4d7d056f9b57d39e6df1c6f60c02ef4ebd51eda76056d35d89b1307af8737e44076d2b1f85348d2b1b9c61bf2220c5347389a6d40ad8bb12f34b5cf",
"lightningcss-linux-arm64-gnu@npm:1.30.1": "bc82ce2e96ffab4b0ba1f9adacf63f461c3f6221bcbc955104c05e6e8c2c6ed8863421663e0e4148a682b143868d07190c38e9f990915a80ce9692f963132320",
"lightningcss-linux-arm64-musl@npm:1.30.1": "2ae25a764b8ed9fcc1977dc1786011e68db23bf3343168fa2d4a9a4bcbb73c7aae258cdcb879d68a3a28e22343705ee435517d3f045e49b15fbb65816d74a91d",
"lightningcss-linux-x64-gnu@npm:1.30.1": "190ac9ba1b9a4bf658a9e5b3c5702546ec779a7a5ccf5a4e06e5d46012ce6cad1842a9b1e717498bc759e103ba7390f42c9b8ba3e67157adec8e7162225633b4",
"lightningcss-linux-x64-musl@npm:1.30.1": "fab6ed75d747024fcf46212b9edc7d1daccfbe4e7a06dcd0f9e841c6a023e61e716751747f9e8aecba18495adc9ef6bc20b24616d5c15c87f5dc1ff9ce1fd859",
"lightningcss-win32-arm64-msvc@npm:1.30.1": "2cc285e89f66323ecae5ec41a6b1a57500d74a549fb392829c99708d5a5254d709c0ccd2d8fef4f6c1fc9a55c5bd51eca633fa1f2228563f884545668adc1b17",
"lightningcss-win32-x64-msvc@npm:1.30.1": "60bd930e71fab0fbf0250406d4791bf27f0b9c8daf095c8d5fce9f3e120d24753e309eb6fed956043fc6a6cbb6d1da30fb0862acb54fa046b5f9a2e69908b6f9"
}
+120
View File
@@ -0,0 +1,120 @@
{
lib,
stdenv,
fetchFromGitHub,
yarn-berry_4,
nodejs,
python3,
electron_37,
makeWrapper,
writableTmpDirAsHomeHook,
makeDesktopItem,
copyDesktopItems,
commandLineArgs ? "",
}:
let
electron = electron_37;
yarn-berry = yarn-berry_4;
in
stdenv.mkDerivation (finalAttrs: {
pname = "cherry-studio";
version = "1.5.11";
src = fetchFromGitHub {
owner = "CherryHQ";
repo = "cherry-studio";
tag = "v${finalAttrs.version}";
hash = "sha256-XJFqoluI3ZwmqxhKpJANqOxkYP3Va7pXXyWOHSLopwc=";
};
postPatch = ''
substituteInPlace src/main/services/ConfigManager.ts \
--replace-fail "ConfigKeys.AutoUpdate, true" "ConfigKeys.AutoUpdate, false" \
--replace-fail "ConfigKeys.AutoUpdate, value" "ConfigKeys.AutoUpdate, false"
substituteInPlace src/main/services/AppUpdater.ts \
--replace-fail " = isActive" " = false"
substituteInPlace src/renderer/src/hooks/useSettings.ts \
--replace-fail "isAutoUpdate)" "false)"
'';
missingHashes = ./missing-hashes.json;
offlineCache = yarn-berry.fetchYarnBerryDeps {
inherit (finalAttrs) src missingHashes;
hash = "sha256-k23HzIN8QAkV/IREM5fHHeaMjO+cIthpLNrLKn4g7tY=";
};
nativeBuildInputs = [
yarn-berry.yarnBerryConfigHook
yarn-berry
makeWrapper
writableTmpDirAsHomeHook
copyDesktopItems
(python3.withPackages (ps: with ps; [ setuptools ]))
nodejs
];
env = {
YARN_ENABLE_SCRIPTS = "false";
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
};
buildPhase = ''
runHook preBuild
yarn run electron-vite build
yarn run electron-builder --linux --dir \
--config electron-builder.yml \
-c.electronDist="${electron}/libexec/electron" \
-c.electronVersion=${electron.version}
runHook postBuild
'';
desktopItems = [
(makeDesktopItem {
name = "cherry-studio";
desktopName = "Cherry Studio";
comment = "A powerful AI assistant for producer.";
exec = "cherry-studio --no-sandbox %U";
terminal = false;
icon = "cherry-studio";
startupWMClass = "CherryStudio";
categories = [ "Utility" ];
mimeTypes = [ "x-scheme-handler/cherrystudio" ];
})
];
installPhase = ''
runHook preInstall
mkdir -p $out/opt/cherry-studio
${
if stdenv.hostPlatform.isAarch64 then
"cp -r dist/linux-arm64-unpacked/{resources,LICENSE*} $out/opt/cherry-studio"
else
"cp -r dist/linux-unpacked/{resources,LICENSE*} $out/opt/cherry-studio"
}
install -Dm644 build/icon.png $out/share/pixmaps/cherry-studio.png
makeWrapper ${lib.getExe electron} $out/bin/cherry-studio \
--inherit-argv0 \
--add-flags $out/opt/cherry-studio/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true --wayland-text-input-version=3}}" \
--add-flags ${lib.escapeShellArg commandLineArgs}
runHook postInstall
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Desktop client that supports for multiple LLM providers";
homepage = "https://github.com/CherryHQ/cherry-studio";
changelog = "https://github.com/CherryHQ/cherry-studio/releases/tag/v${finalAttrs.version}";
mainProgram = "cherry-studio";
platforms = lib.platforms.linux;
maintainers = [ ];
license = with lib.licenses; [ agpl3Only ];
};
})
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnused jq nix bash coreutils nix-update yarn-berry.yarn-berry-fetcher
set -eou pipefail
PACKAGE_DIR=$(realpath $(dirname $0))
latestTag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/CherryHQ/cherry-studio/releases/latest | jq --raw-output .tag_name)
latestVersion=$(echo "$latestTag" | sed 's/^v//')
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; cherry-studio.version or (lib.getVersion cherry-studio)" | tr -d '"')
if [[ "$currentVersion" == "$latestVersion" ]]; then
echo "package is up-to-date: $currentVersion"
exit 0
fi
nix-update cherry-studio --version "$latestVersion" || true
export HOME=$(mktemp -d)
src=$(nix-build --no-link $PWD -A cherry-studio.src)
WORKDIR=$(mktemp -d)
cp --recursive --no-preserve=mode $src/* $WORKDIR
pushd $WORKDIR
yarn-berry-fetcher missing-hashes yarn.lock >$PACKAGE_DIR/missing-hashes.json
popd
nix-update cherry-studio --version skip || true
+44
View File
@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
xorg,
}:
stdenv.mkDerivation rec {
pname = "cherry";
version = "1.4";
src = fetchFromGitHub {
owner = "turquoise-hexagon";
repo = "cherry";
tag = version;
sha256 = "13zkxwp6r6kcxv4x459vwscr0n0sik4a3kcz5xnmlpvcdnbxi586";
};
nativeBuildInputs = [
xorg.fonttosfnt
xorg.mkfontdir
];
buildPhase = ''
patchShebangs make.sh
./make.sh
'';
installPhase = ''
mkdir -p $out/share/fonts/misc
cp *.otb $out/share/fonts/misc
# create fonts.dir so NixOS xorg module adds to fp
mkfontdir $out/share/fonts/misc
'';
meta = with lib; {
description = "cherry font";
homepage = "https://github.com/turquoise-hexagon/cherry";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.all;
};
}
+26
View File
@@ -0,0 +1,26 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "cherrybomb";
version = "1.0.1";
src = fetchCrate {
inherit pname version;
hash = "sha256-MHKBP102U1Ug9wZm9x4+opZgG8f6Hx03FvoLV4qaDgY=";
};
cargoHash = "sha256-j9CT2HHFY4ANWKvx8t/jgCc3aOiSEJlq8CHstjSc+O4=";
meta = {
description = "CLI tool that helps you avoid undefined user behavior by validating your API specifications";
mainProgram = "cherrybomb";
homepage = "https://github.com/blst-security/cherrybomb";
changelog = "https://github.com/blst-security/cherrybomb/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ figsoda ];
};
}
+72
View File
@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
python3,
wrapGAppsHook3,
gtkmm3,
gtksourceview4,
gtksourceviewmm,
gspell,
libxmlxx,
sqlite,
curl,
libuchardet,
spdlog,
fribidi,
vte,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "cherrytree";
version = "1.6.2";
src = fetchFromGitHub {
owner = "giuspen";
repo = "cherrytree";
tag = "v${finalAttrs.version}";
hash = "sha256-YsxhjATadOielthdPyfNrPCL9nhFny00WugDHmRk03k=";
};
nativeBuildInputs = [
cmake
pkg-config
python3
wrapGAppsHook3
];
buildInputs = [
gtkmm3
gtksourceview4
gtksourceviewmm
gspell
libxmlxx
sqlite
curl
libuchardet
spdlog
fribidi
vte
];
meta = {
description = "Hierarchical note taking application";
mainProgram = "cherrytree";
longDescription = ''
Cherrytree is an hierarchical note taking application, featuring rich
text, syntax highlighting and powerful search capabilities. It organizes
all information in units called "nodes", as in a tree, and can be very
useful to store any piece of information, from tables and links to
pictures and even entire documents. All those little bits of information
you have scattered around your hard drive can be conveniently placed into
a Cherrytree document where you can easily find it.
'';
homepage = "https://www.giuspen.com/cherrytree";
changelog = "https://raw.githubusercontent.com/giuspen/cherrytree/${finalAttrs.version}/changelog.txt";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})
+61
View File
@@ -0,0 +1,61 @@
{
lib,
desktop-file-utils,
fetchFromGitLab,
gobject-introspection,
gsound,
gtk4,
libadwaita,
meson,
ninja,
nix-update-script,
pkg-config,
python3,
stdenv,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "chess-clock";
version = "0.6.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "chess-clock";
rev = "v${version}";
hash = "sha256-XDOCHFZC3s3b/4kD1ZkhWar3kozW3vXc0pk7O6oQfiE=";
};
nativeBuildInputs = [
desktop-file-utils
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
gsound
gtk4
libadwaita
(python3.withPackages (
ps: with ps; [
pygobject3
]
))
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Time games of over-the-board chess";
homepage = "https://gitlab.gnome.org/World/chess-clock";
license = lib.licenses.gpl3Plus;
mainProgram = "chess-clock";
teams = [ lib.teams.gnome-circle ];
};
}
+32
View File
@@ -0,0 +1,32 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "chess-tui";
version = "1.6.2";
src = fetchFromGitHub {
owner = "thomas-mauran";
repo = "chess-tui";
tag = finalAttrs.version;
hash = "sha256-OGzYxFGHSH1X8Q8dcB35on/2D+sc0e+chtgObOWUGGM=";
};
cargoHash = "sha256-JfX2JWQVrVvq/P/rFumO9QAeJSTxXIKXJxjXmvl1y+g=";
checkFlags = [
# assertion failed: result.is_ok()
"--skip=tests::test_config_create"
];
meta = {
description = "Chess TUI implementation in rust";
homepage = "https://github.com/thomas-mauran/chess-tui";
maintainers = with lib.maintainers; [ ByteSudoer ];
license = lib.licenses.mit;
mainProgram = "chess-tui";
};
})
+40
View File
@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
tcl,
tk,
libX11,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "chessdb";
version = "3.6.19-beta-1";
src = fetchurl {
url = "mirror://sourceforge/chessdb/ChessDB-${version}.tar.gz";
sha256 = "0brc3wln3bxp979iqj2w1zxpfd0pch8zzazhdmwf7acww4hrsz62";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [
tcl
tk
libX11
];
makeFlags = [
"BINDIR=$(out)/bin"
"SHAREDIR=$(out)/share/chessdb"
"SOUNDSDIR=$(out)/share/chessdb/sounds"
"TBDIR=$(out)/share/chessdb/tablebases"
"MANDIR=$(out)/man"
];
meta = {
homepage = "https://chessdb.sourceforge.net/";
description = "Free chess database";
platforms = lib.platforms.linux;
};
}
+62
View File
@@ -0,0 +1,62 @@
{
stdenv,
lib,
pkg-config,
zlib,
fetchurl,
libsForQt5,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "chessx";
version = "1.6.2";
src = fetchurl {
url = "mirror://sourceforge/chessx/chessx-${finalAttrs.version}.tgz";
hash = "sha256-uwkdhJywLWMJl4/ihMnxqFwnTzUSL+kca5wwiabiD4A=";
};
nativeBuildInputs = [
pkg-config
]
++ (with libsForQt5; [
qmake
wrapQtAppsHook
]);
buildInputs = [
zlib
]
++ (with libsForQt5; [
qtbase
qtmultimedia
qtsvg
qttools
]);
enableParallelBuilding = true;
# Fails to start on Native Wayland.
# See https://sourceforge.net/p/chessx/bugs/299/
qtWrapperArgs = [
"--set"
"QT_QPA_PLATFORM"
"xcb"
];
installPhase = ''
runHook preInstall
install -Dm555 release/chessx -t "$out/bin"
install -Dm444 unix/chessx.desktop -t "$out/share/applications"
runHook postInstall
'';
meta = {
homepage = "https://chessx.sourceforge.io/";
description = "Browse and analyse chess games";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ luispedro ];
platforms = lib.platforms.linux;
mainProgram = "chessx";
};
})
@@ -0,0 +1,36 @@
{
stdenv,
lib,
fetchFromGitHub,
chez,
}:
stdenv.mkDerivation rec {
pname = "chez-matchable";
# nixpkgs-update: no auto update
version = "0.2";
src = fetchFromGitHub {
owner = "fedeinthemix";
repo = "chez-matchable";
tag = "v${version}";
sha256 = "sha256-UYoT8Kp1FTfiL22ntrFXFcAB1HGVrJ6p9JgvhUKi+Yo=";
};
buildInputs = [ chez ];
makeFlags = [
"CHEZ=${lib.getExe chez}"
"PREFIX=$(out)"
];
doCheck = false;
meta = with lib; {
description = "Library for ChezScheme providing the portable hygenic pattern matcher by Alex Shinn";
homepage = "https://github.com/fedeinthemix/chez-matchable/";
maintainers = [ maintainers.jitwit ];
license = licenses.publicDomain;
};
}
+41
View File
@@ -0,0 +1,41 @@
{
stdenv,
lib,
fetchFromGitHub,
chez,
chez-srfi,
}:
stdenv.mkDerivation rec {
pname = "chez-mit";
version = "0.2";
src = fetchFromGitHub {
owner = "fedeinthemix";
repo = "chez-mit";
rev = "v${version}";
sha256 = "sha256-TmoLA0zLETKE+PsrGS5dce9xLQUIKwSNixRSVjbrOlk=";
};
buildInputs = [
chez
chez-srfi
];
makeFlags = [
"CHEZ=${lib.getExe chez}"
"PREFIX=$(out)"
"CHEZSCHEMELIBDIRS=${chez-srfi}/lib/csv${lib.versions.majorMinor chez.version}-site"
];
doCheck = false;
meta = with lib; {
description = "MIT/GNU Scheme compatibility library for Chez Scheme";
homepage = "https://github.com/fedeinthemix/chez-mit/";
maintainers = [ maintainers.jitwit ];
license = licenses.gpl3Plus;
broken = stdenv.hostPlatform.isDarwin;
};
}
+74
View File
@@ -0,0 +1,74 @@
{
stdenv,
buildPackages,
callPackage,
}:
let
chezArch =
if stdenv.hostPlatform.isAarch then
"arm${toString stdenv.hostPlatform.parsed.cpu.bits}"
else if stdenv.hostPlatform.isx86_32 then
"i3"
else if stdenv.hostPlatform.isx86_64 then
"a6"
else if stdenv.hostPlatform.isPower then
"ppc${toString stdenv.hostPlatform.parsed.cpu.bits}"
else
throw "Add ${stdenv.hostPlatform.parsed.cpu.arch} to chezArch to enable building chez-racket";
chezOs =
if stdenv.hostPlatform.isDarwin then
"osx"
else if stdenv.hostPlatform.isFreeBSD then
"fb"
else if stdenv.hostPlatform.isLinux then
"le"
else if stdenv.hostPlatform.isNetBSD then
"nb"
else if stdenv.hostPlatform.isOpenBSD then
"ob"
else
throw "Add ${stdenv.hostPlatform.uname.system} to chezOs to enable building chez-racket";
inherit (stdenv.hostPlatform) system;
chezSystem = "t${chezArch}${chezOs}";
# Chez Scheme uses an ad-hoc `configure`, hence we don't use the usual
# stdenv abstractions.
forBoot = {
pname = "chez-scheme-racket-boot";
configurePhase = ''
runHook preConfigure
./configure --pb ZLIB=$ZLIB LZ4=$LZ4
runHook postConfigure
'';
makeFlags = [ "${chezSystem}.bootquick" ];
installPhase = ''
runHook preInstall
mkdir -p $out
pushd boot
mv $(ls -1 | grep -v "^pb$") -t $out
popd
runHook postInstall
'';
};
boot = buildPackages.callPackage (import ./shared.nix forBoot) { };
forFinal = {
pname = "chez-scheme-racket";
configurePhase = ''
runHook preConfigure
cp -r ${boot}/* -t ./boot
./configure -m=${chezSystem} --installprefix=$out --installman=$out/share/man ZLIB=$ZLIB LZ4=$LZ4
runHook postConfigure
'';
preBuild = ''
pushd ${chezSystem}/c
'';
postBuild = ''
popd
'';
setupHook = ./setup-hook.sh;
};
final = callPackage (import ./shared.nix forFinal) { };
in
final
@@ -0,0 +1,5 @@
addChezLibraryPath() {
addToSearchPath CHEZSCHEMELIBDIRS "$1/lib/csv-site"
}
addEnvHooks "$targetOffset" addChezLibraryPath
+62
View File
@@ -0,0 +1,62 @@
args:
{
stdenv,
lib,
fetchFromGitHub,
coreutils,
cctools,
darwin,
ncurses,
libiconv,
libX11,
zlib,
lz4,
}:
stdenv.mkDerivation (
args
// {
version = "unstable-2021-12-11";
src = fetchFromGitHub {
owner = "racket";
repo = "ChezScheme";
rev = "8846c96b08561f05a937d5ecfe4edc96cc99be39";
sha256 = "IYJQzT88T8kFahx2BusDOyzz6lQDCbZIfSz9rZoNF7A=";
fetchSubmodules = true;
};
prePatch = ''
rm -rf zlib/*.c lz4/lib/*.c
'';
postPatch = ''
export ZLIB="$(find ${zlib.out}/lib -type f | sort | head -n1)"
export LZ4="$(find ${lz4.lib}/lib -type f | sort | head -n1)"
'';
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
cctools
darwin.autoSignDarwinBinariesHook
];
buildInputs = [
libiconv
libX11
lz4
ncurses
zlib
];
enableParallelBuilding = true;
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation";
meta = {
description = "Fork of Chez Scheme for Racket";
homepage = "https://github.com/racket/ChezScheme";
license = lib.licenses.asl20;
maintainers = [ ];
platforms = lib.platforms.unix;
};
}
)
+44
View File
@@ -0,0 +1,44 @@
{
stdenv,
lib,
fetchFromGitHub,
chez,
chez-srfi,
chez-mit,
}:
stdenv.mkDerivation rec {
pname = "chez-scmutils";
version = "0.2";
src = fetchFromGitHub {
owner = "fedeinthemix";
repo = "chez-scmutils";
rev = "v${version}";
sha256 = "sha256-y2ug7GfmkJC6jddgB8YllsumjmGxFJxTGTpPf1Vcs/s=";
};
buildInputs = [
chez
chez-srfi
chez-mit
];
lib-path = "lib/csv${lib.versions.majorMinor chez.version}-site";
makeFlags = [
"CHEZ=${lib.getExe chez}"
"PREFIX=$(out)"
"CHEZSCHEMELIBDIRS=${chez-srfi}/${lib-path}:${chez-mit}/${lib-path}"
];
doCheck = false;
meta = with lib; {
description = "Port of the 'MIT Scmutils' library to Chez Scheme";
homepage = "https://github.com/fedeinthemix/chez-scmutils/";
maintainers = [ maintainers.jitwit ];
license = licenses.gpl3;
};
}
+35
View File
@@ -0,0 +1,35 @@
{
stdenv,
lib,
fetchFromGitHub,
chez,
}:
stdenv.mkDerivation rec {
pname = "chez-srfi";
version = "1.1";
src = fetchFromGitHub {
owner = "fedeinthemix";
repo = "chez-srfi";
rev = "v${version}";
sha256 = "sha256-yBhRNfoEt1LOn3/zd/yOWwfErN/qG/tQZnDRqEf8j/0=";
};
buildInputs = [ chez ];
makeFlags = [
"CHEZ=${lib.getExe chez}"
"PREFIX=$(out)"
];
doCheck = false;
meta = with lib; {
description = "This package provides a collection of SRFI libraries for Chez Scheme";
homepage = "https://github.com/fedeinthemix/chez-srfi/";
maintainers = [ maintainers.jitwit ];
license = licenses.x11;
};
}
+131
View File
@@ -0,0 +1,131 @@
{
lib,
stdenv,
fetchFromGitHub,
zuo,
zlib,
lz4,
libffi,
cctools,
darwin,
ncurses,
libiconv,
libX11,
testers,
writableTmpDirAsHomeHook,
buildPackages,
}:
let
inherit (stdenv.hostPlatform) extensions;
arch =
{
"x86_64-linux" = "ta6le";
"x86-linux" = "ti3le";
"aarch64-linux" = "tarm64le";
"x86_64-darwin" = "ta6osx";
"aarch64-darwin" = "tarm64osx";
"x86_64-windows" = "ta6nt";
"aarch64-windows" = "tarm64nt";
}
.${stdenv.hostPlatform.system}
or (throw "Unsupported host system, try checking https://cisco.github.io/ChezScheme/release_notes/latest/release_notes.html to see if ${stdenv.hostPlatform.system} is supported");
in
stdenv.mkDerivation (finalAttrs: {
pname = "chez-scheme";
version = "10.2.0";
src = fetchFromGitHub {
owner = "cisco";
repo = "ChezScheme";
tag = "v${finalAttrs.version}";
hash = "sha256-wAEnuC6hktCK/l00G48jYD9fwdyiXkzHjC2YYVeCJXo=";
# Vendored nanopass and stex
fetchSubmodules = true;
};
strictDeps = true;
depsBuildBuild = [
zuo # Used as the build driver
buildPackages.stdenv.cc # Needed for cross
];
nativeBuildInputs =
lib.optionals stdenv.hostPlatform.isDarwin [
cctools
]
++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
darwin.autoSignDarwinBinariesHook
];
buildInputs = [
ncurses
libiconv
zlib
lz4
libffi
]
++ lib.optionals stdenv.hostPlatform.isUnix [
libX11
];
/*
** Set to use Nixpkgs dependencies when possible
** instead of vendored dependencies.
**
** Carefully set a manual workarea argument, so that we
** can later easily find the machine type that we built Chez
** for.
*/
enableParallelBuilding = true;
dontAddPrefix = true;
configurePlatforms = [ ]; # So it doesn't add the default --build --host flags
configureFlags = [
# Skip submodule update
"--as-is"
# Threaded version
"--threads"
"--installprefix=${placeholder "out"}"
"--installman=${placeholder "out"}/share/man"
"--enable-libffi"
"CC_FOR_BUILD=cc"
# Use Nixpkgs dependencies
"ZUO=zuo"
"ZLIB=${zlib}/lib/libz${extensions.sharedLibrary}"
"LZ4=${lz4.lib}/lib/liblz4${extensions.sharedLibrary}"
# Append to CFLAGS or else get errors
# Don't set CFLAGS so it can do some detections stuff
"CFLAGS+=${lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation"}"
]
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"--cross"
"-m=${arch}"
];
enableParallelChecking = true;
nativeCheckInputs = [ writableTmpDirAsHomeHook ];
doCheck = false; # Filesystem checks are impure
# ** Clean up some of the examples from the build output.
postInstall = ''
rm -rf $out/lib/csv${finalAttrs.version}/examples
'';
setupHook = ./setup-hook.sh;
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
meta = {
description = "Powerful and incredibly fast R6RS Scheme compiler";
homepage = "https://cisco.github.io/ChezScheme/";
changelog = "https://cisco.github.io/ChezScheme/release_notes/v${finalAttrs.version}/release_notes.html";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
thoughtpolice
RossSmyth
];
platforms = lib.platforms.all;
mainProgram = "scheme";
};
})
+5
View File
@@ -0,0 +1,5 @@
addChezLibraryPath() {
addToSearchPath CHEZSCHEMELIBDIRS "$1/lib/csv-site"
}
addEnvHooks "$targetOffset" addChezLibraryPath
+50
View File
@@ -0,0 +1,50 @@
{
lib,
buildGo125Module,
fetchFromGitHub,
installShellFiles,
}:
buildGo125Module (finalAttrs: {
pname = "chezmoi";
version = "2.65.0";
src = fetchFromGitHub {
owner = "twpayne";
repo = "chezmoi";
tag = "v${finalAttrs.version}";
hash = "sha256-neUltKkmNUtTajTwfWIIM9sJfDSXuAqJT3uLq6vR5NE=";
};
vendorHash = "sha256-NQ7k9bydAJDOGRX3bvRGkX5FuU8Va1IjUa6h0JEiLzo=";
nativeBuildInputs = [
installShellFiles
];
subPackages = [ "." ];
ldflags = [
"-s"
"-w"
"-X main.version=${finalAttrs.version}"
"-X main.builtBy=nixpkgs"
];
doCheck = false;
postInstall = ''
installShellCompletion --bash --name chezmoi.bash completions/chezmoi-completion.bash
installShellCompletion --fish completions/chezmoi.fish
installShellCompletion --zsh completions/chezmoi.zsh
'';
meta = {
description = "Manage your dotfiles across multiple machines, securely";
homepage = "https://www.chezmoi.io/";
changelog = "https://github.com/twpayne/chezmoi/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = [ ];
mainProgram = "chezmoi";
};
})

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