push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "sn-pro";
version = "1.5.0";
src = fetchFromGitHub {
owner = "supernotes";
repo = "sn-pro";
rev = version;
hash = "sha256-H8YG7FMn03tiBxz5TZDzowicqtewfX6rYd03pdTPYSo=";
};
installPhase = ''
runHook preInstall
install -Dm644 -t $out/share/fonts/otf exports/SNPro/*.otf
install -Dm644 -t $out/share/fonts/woff2 exports/SNPro/*.woff2
runHook postInstall
'';
meta = with lib; {
description = "SN Pro Font Family";
homepage = "https://github.com/supernotes/sn-pro";
license = licenses.ofl;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
fetchFromGitHub,
rustPlatform,
libseccomp,
libsodium,
pkg-config,
pkgs,
sqlite,
stdenv,
installShellFiles,
}:
rustPlatform.buildRustPackage rec {
pname = "sn0int";
version = "0.26.1";
src = fetchFromGitHub {
owner = "kpcyrd";
repo = "sn0int";
tag = "v${version}";
hash = "sha256-tiJLwlxZ9ndircgkH23ew+3QJeuuqt93JahAtFPcuG8=";
};
cargoHash = "sha256-nDgWNm5HTvFEMQhUUnU7o2Rpzl3/bGwyB0N9Z1KorDs=";
nativeBuildInputs = [
pkg-config
installShellFiles
];
buildInputs = [
libsodium
sqlite
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libseccomp
];
# One of the dependencies (chrootable-https) tries to read "/etc/resolv.conf"
# in "checkPhase", hence fails in sandbox of "nix".
doCheck = false;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd sn0int \
--bash <($out/bin/sn0int completions bash) \
--fish <($out/bin/sn0int completions fish) \
--zsh <($out/bin/sn0int completions zsh)
'';
meta = {
description = "Semi-automatic OSINT framework and package manager";
homepage = "https://github.com/kpcyrd/sn0int";
changelog = "https://github.com/kpcyrd/sn0int/releases/tag/v${version}";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [
fab
xrelkd
];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "sn0int";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "snabb";
version = "2024.08";
src = fetchFromGitHub {
owner = "snabbco";
repo = "snabb";
rev = "v${version}";
sha256 = "sha256-2ULkzNeyEkXFdd8BUEcY5wZswh8Z4s4ONqSQbeWK2Qs=";
};
installPhase = ''
mkdir -p $out/bin
cp src/snabb $out/bin
'';
meta = with lib; {
homepage = "https://github.com/SnabbCo/snabbswitch";
description = "Simple and fast packet networking toolkit";
longDescription = ''
Snabb Switch is a LuaJIT-based toolkit for writing high-speed
packet networking code (such as routing, switching, firewalling,
and so on). It includes both a scripting inteface for creating
new applications and also some built-in applications that are
ready to run.
It is especially intended for ISPs and other network operators.
'';
platforms = [ "x86_64-linux" ];
license = licenses.asl20;
maintainers = [ maintainers.lukego ];
mainProgram = "snabb";
};
}

View File

@@ -0,0 +1,54 @@
{
stdenv,
lib,
fetchFromGitea,
curl,
openssl,
nix-update-script,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snac2";
version = "2.83";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "grunfink";
repo = "snac2";
tag = finalAttrs.version;
hash = "sha256-5BpJKDXA3PO/ZCfFYMngWaAGns2+ANWCpLgiEi4CAXY=";
};
buildInputs = [
curl
openssl
];
makeFlags = [ "PREFIX=$(out)" ];
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.hostPlatform.isDarwin [
"-Dst_mtim=st_mtimespec"
"-Dst_ctim=st_ctimespec"
]
);
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/snac";
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
changelog = "https://codeberg.org/grunfink/snac2/src/tag/${finalAttrs.version}/RELEASE_NOTES.md";
description = "Simple, minimalistic ActivityPub instance (2.x, C)";
homepage = "https://codeberg.org/grunfink/snac2";
license = lib.licenses.mit;
mainProgram = "snac";
maintainers = with lib.maintainers; [ misuzu ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
snagboot,
testers,
gitUpdater,
udevCheckHook,
}:
python3Packages.buildPythonApplication rec {
pname = "snagboot";
version = "2.4";
pyproject = true;
src = fetchFromGitHub {
owner = "bootlin";
repo = "snagboot";
tag = "v${version}";
hash = "sha256-ZjN4k5prOoEdAT4z37XiHdnUgLsz3zeR3+0zxY+2420=";
};
build-system = with python3Packages; [
setuptools
];
pythonRemoveDeps = [
"swig"
];
nativeBuildInputs = [
udevCheckHook
];
dependencies = with python3Packages; [
pyyaml
pyusb
pyserial
tftpy
crccheck
libfdt
# swig
packaging
xmodem
];
pythonRelaxDeps = [ "pylibfdt" ];
optional-dependencies = with python3Packages; {
gui = [ kivy ];
};
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
rules="src/snagrecover/50-snagboot.rules"
if [ ! -f "$rules" ]; then
echo "$rules is missing, must update the Nix file."
exit 1
fi
mkdir -p "$out/lib/udev/rules.d"
cp "$rules" "$out/lib/udev/rules.d/50-snagboot.rules"
'';
passthru = {
updateScript = gitUpdater {
rev-prefix = "v";
ignoredVersions = ".(rc|beta).*";
};
tests.version = testers.testVersion {
package = snagboot;
command = "snagrecover --version";
version = "v${version}";
};
};
meta = {
homepage = "https://github.com/bootlin/snagboot";
description = "Generic recovery and reflashing tool for embedded platforms";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ otavio ];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchurl,
shhmsg,
shhopt,
xorg,
}:
stdenv.mkDerivation rec {
pname = "snake4";
version = "1.0.14";
src = fetchurl {
url = "https://shh.thathost.com/pub-unix/files/snake4-${version}.tar.gz";
sha256 = "14cng9l857np42zixp440mbc8y5675frb6lhsds53j1cws9cncw9";
};
buildInputs = with xorg; [
shhmsg
shhopt
libX11
libXt
libXpm
libXaw
libXext
];
preInstall = ''
substituteInPlace Makefile \
--replace "-o \$(OWNER) -g \$(GROUP)" "" \
--replace "4755" "755"
'';
installFlags = [
"INSTLIBDIR=$(out)/lib"
"INSTBINDIR=$(out)/bin"
"INSTMANDIR=$(out)/man"
];
meta = with lib; {
description = "Game starring a fruit-eating snake";
homepage = "https://shh.thathost.com/pub-unix/html/snake4.html";
license = licenses.artistic1;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
python3,
fetchPypi,
nix-update-script,
versionCheckHook,
}:
python3.pkgs.buildPythonApplication rec {
pname = "snakefmt";
version = "0.11.2";
pyproject = true;
disabled = python3.pythonOlder "3.11";
src = fetchPypi {
inherit pname version;
hash = "sha256-6a03WEAeApH3pFNgB1xXODhrWKGxYNOIJ7QGMNn3NeE=";
};
build-system = with python3.pkgs; [ hatchling ];
dependencies = with python3.pkgs; [
black
click
];
pythonRelaxDeps = [
"black"
"click"
];
pythonImportsCheck = [ "snakefmt" ];
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Uncompromising Snakemake code formatter";
homepage = "https://pypi.org/project/snakefmt/";
changelog = "https://github.com/snakemake/snakefmt/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jolars ];
mainProgram = "snakefmt";
};
}

View File

@@ -0,0 +1,198 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
stress,
versionCheckHook,
writableTmpDirAsHomeHook,
}:
python3Packages.buildPythonApplication rec {
pname = "snakemake";
version = "9.11.8";
pyproject = true;
src = fetchFromGitHub {
owner = "snakemake";
repo = "snakemake";
tag = "v${version}";
hash = "sha256-fQCpQ3LB0Q1USZ9YTEniR5iKq68Zri9+14zqa/jzO2o=";
};
postPatch = ''
patchShebangs --build tests/
substituteInPlace tests/common.py \
--replace-fail 'os.environ["PYTHONPATH"] = os.getcwd()' "pass" \
--replace-fail 'del os.environ["PYTHONPATH"]' "pass"
substituteInPlace src/snakemake/unit_tests/__init__.py \
--replace-fail '"unit_tests/templates"' '"'"$PWD"'/snakemake/unit_tests/templates"'
substituteInPlace src/snakemake/assets/__init__.py \
--replace-fail "raise err" "return bytes('err','ascii')"
'';
build-system = with python3Packages; [ setuptools-scm ];
dependencies = with python3Packages; [
appdirs
conda-inject
configargparse
connection-pool
datrie
docutils
gitpython
humanfriendly
immutables
jinja2
jsonschema
nbformat
psutil
pulp
pygments
pyyaml
requests
reretry
smart-open
snakemake-interface-executor-plugins
snakemake-interface-common
snakemake-interface-logger-plugins
snakemake-interface-storage-plugins
snakemake-interface-report-plugins
snakemake-interface-scheduler-plugins
stopit
tabulate
throttler
toposort
wrapt
yte
];
# See
# https://github.com/snakemake/snakemake/blob/main/.github/workflows/main.yml#L99
# for the current basic test suite. Slurm, Tibanna and Tes require extra
# setup.
nativeCheckInputs =
(with python3Packages; [
numpy
pandas
pytestCheckHook
pytest-mock
requests-mock
snakemake-executor-plugin-cluster-generic
snakemake-storage-plugin-fs
stress
versionCheckHook
polars
])
++ [ writableTmpDirAsHomeHook ];
versionCheckProgramArg = "--version";
enabledTestPaths = [
"tests/tests.py"
"tests/test_expand.py"
"tests/test_io.py"
"tests/test_schema.py"
"tests/test_executor_test_suite.py"
"tests/test_api.py"
];
disabledTests = [
# FAILED tests/tests.py::test_env_modules - AssertionError: expected successful execution
"test_ancient"
"test_conda_create_envs_only"
"test_env_modules"
"test_generate_unit_tests"
"test_modules_prefix"
"test_strict_mode"
# Requires perl
"test_shadow"
# Require peppy and eido
"test_peppy"
"test_modules_peppy"
"test_pep_pathlib"
# CalledProcessError
"test_filegraph" # requires graphviz
"test_github_issue1384"
# AssertionError: assert 127 == 1
"test_issue1256"
"test_issue2574"
# Require `snakemake-storage-plugin-fs` (circular dependency)
"test_default_storage"
"test_default_storage_local_job"
"test_deploy_sources"
"test_output_file_cache_storage"
"test_storage"
# Tries to access internet
"test_report_after_run"
# Needs stress-ng
"test_benchmark"
"test_benchmark_jsonl"
# Needs unshare
"test_nodelocal"
# Requires snakemake-storage-plugin-http
"test_keep_local"
"test_retrieve"
# Requires conda
"test_jupyter_notebook"
"test_jupyter_notebook_nbconvert"
"test_jupyter_notebook_draft"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Unclear failure:
# AssertionError: expected successful execution
# `__darwinAllowLocalNetworking` doesn't help
"test_excluded_resources_not_submitted_to_cluster"
"test_group_job_resources_with_pipe"
"test_group_jobs_resources"
"test_group_jobs_resources_with_limited_resources"
"test_group_jobs_resources_with_max_threads"
"test_issue850"
"test_issue860"
"test_multicomp_group_jobs"
"test_queue_input"
"test_queue_input_dryrun"
"test_queue_input_forceall"
"test_resources_submitted_to_cluster"
"test_scopes_submitted_to_cluster"
# Issue with /dev/stderr in sandbox
"test_protected_symlink_output"
# Unclear issue:
# pulp.apis.core.PulpSolverError: Pulp: cannot execute cbc cwd:
# but pulp solver is not default
"test_access_patterns"
];
pythonImportsCheck = [ "snakemake" ];
meta = {
homepage = "https://snakemake.github.io";
license = lib.licenses.mit;
description = "Python-based execution environment for make-like workflows";
changelog = "https://github.com/snakemake/snakemake/blob/${src.tag}/CHANGELOG.md";
mainProgram = "snakemake";
longDescription = ''
Snakemake is a workflow management system that aims to reduce the complexity of
creating workflows by providing a fast and comfortable execution environment,
together with a clean and readable specification language in Python style. Snakemake
workflows are essentially Python scripts extended by declarative code to define
rules. Rules describe how to create output files from input files.
'';
maintainers = with lib.maintainers; [
helkafen
renatoGarcia
veprbl
];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "snallygaster";
version = "0.0.15";
pyproject = true;
src = fetchFromGitHub {
owner = "hannob";
repo = "snallygaster";
tag = "v${version}";
hash = "sha256-t6xNRPISlPaxlwW/infW9qnxguc/wF7XpbFPzZRcgDA=";
};
build-system = with python3Packages; [
setuptools
setuptools-scm
];
dependencies = with python3Packages; [
dnspython
lxml
urllib3
];
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
meta = with lib; {
description = "Tool to scan for secret files on HTTP servers";
homepage = "https://github.com/hannob/snallygaster";
changelog = "https://github.com/hannob/snallygaster/releases/tag/${src.tag}";
license = licenses.bsd0;
maintainers = with maintainers; [ fab ];
mainProgram = "snallygaster";
};
}

View File

@@ -0,0 +1,47 @@
{
stdenv,
lib,
fetchzip,
p7zip,
}:
stdenv.mkDerivation rec {
pname = "snap7";
version = "1.4.2";
src = fetchzip {
url = "mirror://sourceforge/snap7/${version}/snap7-full-${version}.7z";
sha256 = "1n5gs8bwb6g9vfllf3x12r5yzqzapmlq1bmc6hl854b8vkg30y8c";
postFetch = ''
${p7zip}/bin/7z x $downloadedFile
mkdir $out
cp -r snap7-full-${version}/* $out/
'';
};
outputs = [
"out"
"dev"
"doc"
];
makefile = "x86_64_linux.mk";
makeFlags = [ "LibInstall=$(out)/lib" ];
preBuild = "cd build/unix";
preInstall = ''
mkdir -p $out/lib
mkdir -p $dev/include
mkdir -p $doc/share
cp $src/examples/cpp/snap7.h $dev/include
cp -r $src/doc $doc/share/
'';
meta = with lib; {
homepage = "https://snap7.sourceforge.net/";
description = "Step7 Open Source Ethernet Communication Suite";
license = licenses.lgpl3;
maintainers = with maintainers; [ freezeboy ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,101 @@
{
lib,
stdenv,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
icoutils,
mono,
jre,
androidenv,
gtk-sharp-2_0,
gtk2,
libcxx,
coreutils,
requireFile,
archive ? requireFile {
name = "snapdragonprofiler_external_linux.tar.gz";
message = ''
This nix expression requires that "snapdragonprofiler_external_linux.tar.gz" is
already part of the store. To get this archive, you need to download it from:
https://developer.qualcomm.com/software/snapdragon-profiler
and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
'';
sha256 = "c6731c417ca39fa9b0f190bd80c99b1603cf97d23becab9e47db6beafd6206b7";
},
}:
stdenv.mkDerivation rec {
pname = "snapdragon-profiler";
version = "2021.2";
src = archive;
nativeBuildInputs = [
makeWrapper
icoutils
copyDesktopItems
];
buildInputs = [
mono
gtk-sharp-2_0
gtk2
libcxx
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/snapdragon-profiler}
mkdir -p $out/share/icons/hicolor/{16x16,32x32,48x48}/apps
mv *.so $out/lib
cp -r * $out/lib/snapdragon-profiler
makeWrapper "${mono}/bin/mono" $out/bin/snapdragon-profiler \
--add-flags "$out/lib/snapdragon-profiler/SnapdragonProfiler.exe" \
--suffix PATH : ${
lib.makeBinPath [
jre
androidenv.androidPkgs.platform-tools
coreutils
]
} \
--prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \
--suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //') \
--chdir "$out/lib/snapdragon-profiler" # Fixes themes not loading correctly
wrestool -x -t 14 SnapdragonProfiler.exe > snapdragon-profiler.ico
icotool -x -i 1 -o $out/share/icons/hicolor/16x16/apps/snapdragon-profiler.png snapdragon-profiler.ico
icotool -x -i 2 -o $out/share/icons/hicolor/32x32/apps/snapdragon-profiler.png snapdragon-profiler.ico
icotool -x -i 3 -o $out/share/icons/hicolor/48x48/apps/snapdragon-profiler.png snapdragon-profiler.ico
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = pname;
desktopName = "Snapdragon Profiler";
exec = "snapdragon-profiler";
icon = "snapdragon-profiler";
comment = meta.description;
categories = [
"Development"
"Debugger"
"Graphics"
"3DGraphics"
];
})
];
dontStrip = true; # Always needed on Mono
dontPatchELF = true; # Certain libraries are to be deployed to the remote device, they should not be patched
meta = with lib; {
homepage = "https://developer.qualcomm.com/software/snapdragon-profiler";
description = "Profiler for Android devices running Snapdragon chips";
license = licenses.unfree;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,157 @@
{
lib,
stdenv,
autoPatchelfHook,
makeDesktopItem,
copyDesktopItems,
wrapGAppsHook3,
fetchurl,
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
gtk3,
nss,
glib,
nspr,
gdk-pixbuf,
libdrm,
libgbm,
libX11,
libXScrnSaver,
libXcomposite,
libXcursor,
libXdamage,
libXext,
libXfixes,
libXi,
libXrandr,
libXrender,
libXtst,
libxcb,
libxshmfence,
pango,
gcc-unwrapped,
udev,
python311,
}:
stdenv.mkDerivation rec {
pname = "snapmaker-luban";
version = "4.15.0";
src = fetchurl {
url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
hash = "sha256-X4XNzkl5ky3C8fj92J9OQxj12zmIQ+xS02wYLWo94oU=";
};
nativeBuildInputs = [
autoPatchelfHook
wrapGAppsHook3
copyDesktopItems
];
buildInputs = [
alsa-lib
at-spi2-atk
at-spi2-core
cairo
cups
gcc-unwrapped
gtk3
libdrm
libXdamage
libX11
libXScrnSaver
libXtst
libxcb
libxshmfence
libgbm
nspr
nss
(lib.getLib stdenv.cc.cc)
python311
];
libPath = lib.makeLibraryPath [
stdenv.cc.cc
alsa-lib
atk
at-spi2-atk
at-spi2-core
cairo
cups
gdk-pixbuf
glib
gtk3
libX11
libXcomposite
libxshmfence
libXcursor
libXdamage
libXext
libXfixes
libXi
libXrandr
libXrender
libXtst
nspr
nss
libxcb
pango
libXScrnSaver
udev
];
autoPatchelfIgnoreMissingDeps = [ "libc.musl-x86_64.so.1" ];
dontWrapGApps = true;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,opt,share/pixmaps}/
mv * $out/opt/
patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
$out/opt/snapmaker-luban
wrapProgram $out/opt/snapmaker-luban \
"''${gappsWrapperArgs[@]}" \
--prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
--prefix LD_LIBRARY_PATH : ${libPath}:$out/snapmaker-luban
ln -s $out/opt/snapmaker-luban $out/bin/snapmaker-luban
ln -s $out/opt/resources/app/src/app/resources/images/snapmaker-logo.png $out/share/pixmaps/snapmaker-luban.png
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = pname;
exec = "snapmaker-luban";
icon = "snapmaker-luban";
desktopName = "Snapmaker Luban";
genericName = meta.description;
categories = [
"Office"
"Printing"
];
})
];
meta = {
description = "Snapmaker Luban is an easy-to-use 3-in-1 software tailor-made for Snapmaker machines";
homepage = "https://github.com/Snapmaker/Luban";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ simonkampe ];
platforms = [ "x86_64-linux" ];
knownVulnerabilities = [ "CVE-2023-5217" ];
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
fetchFromGitHub,
nix-update-script,
python3,
python3Packages,
adwaita-icon-theme,
gtk3,
wrapGAppsHook3,
gtksourceview3,
snapper,
gobject-introspection,
}:
python3Packages.buildPythonApplication {
pname = "snapper-gui";
version = "0.1-unstable-2022-06-26";
format = "setuptools";
src = fetchFromGitHub {
owner = "ricardomv";
repo = "snapper-gui";
rev = "191575084a4e951802c32a4177dc704cf435883a";
sha256 = "sha256-uy1oLJx4ERGc8OHzmPpnJX81jPB9ztrA0qbmm1UcmTY=";
};
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
];
buildInputs = [
python3
adwaita-icon-theme
];
doCheck = false; # it doesn't have any tests
propagatedBuildInputs = with python3Packages; [
gtk3
dbus-python
pygobject3
setuptools
gtksourceview3
snapper
];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = with lib; {
description = "Graphical interface for snapper";
mainProgram = "snapper-gui";
longDescription = ''
A graphical user interface for the tool snapper for Linux filesystem
snapshot management. It can compare snapshots and revert differences between snapshots.
In simple terms, this allows root and non-root users to view older versions of files
and revert changes. Currently works with btrfs, ext4 and thin-provisioned LVM volumes.
'';
homepage = "https://github.com/ricardomv/snapper-gui";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ ahuzik ];
};
}

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
docbook_xsl,
libxslt,
docbook_xml_dtd_45,
acl,
attr,
boost,
btrfs-progs,
coreutils,
dbus,
diffutils,
e2fsprogs,
libxml2,
lvm2,
pam,
util-linux,
json_c,
nixosTests,
ncurses,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snapper";
version = "0.13.0";
src = fetchFromGitHub {
owner = "openSUSE";
repo = "snapper";
tag = "v${finalAttrs.version}";
hash = "sha256-8rIjfulMuh4HzZv08bX7gveJAo2X2GvswmBD3Ziu0NM=";
};
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
pkg-config
docbook_xsl
libxslt
docbook_xml_dtd_45
];
buildInputs = [
acl
attr
boost
btrfs-progs
dbus
diffutils
e2fsprogs
libxml2
lvm2
pam
util-linux
json_c
ncurses
zlib
];
# Hard-coded root paths, hard-coded root paths everywhere...
postPatch = ''
for file in {client/installation-helper,client/systemd-helper,data,scripts,zypp-plugin,scripts/completion}/Makefile.am; do
substituteInPlace $file \
--replace-warn '$(DESTDIR)/usr' "$out" \
--replace-warn "DESTDIR" "out" \
--replace-warn "/usr" "$out"
done
'';
configureFlags = [
"--disable-ext4" # requires patched kernel & e2fsprogs
"DIFFBIN=${diffutils}/bin/diff"
"RMBIN=${coreutils}/bin/rm"
];
enableParallelBuilding = true;
postInstall = ''
rm -r $out/etc/cron.*
patchShebangs $out/lib/zypp/plugins/commit/*
for file in \
$out/lib/pam_snapper/* \
$out/lib/systemd/system/* \
$out/share/dbus-1/system-services/* \
; do
substituteInPlace $file --replace-warn "/usr" "$out"
done
'';
passthru.tests.snapper = nixosTests.snapper;
meta = {
description = "Tool for Linux filesystem snapshot management";
homepage = "http://snapper.io";
license = lib.licenses.gpl2Only;
mainProgram = "snapper";
maintainers = with lib.maintainers; [ markuskowa ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
fetchpatch,
static ? stdenv.hostPlatform.isStatic,
}:
stdenv.mkDerivation rec {
pname = "snappy";
version = "1.2.2";
src = fetchFromGitHub {
owner = "google";
repo = "snappy";
rev = version;
hash = "sha256-bMZD8EI9dvDGupfos4hi/0ShBkrJlI5Np9FxE6FfrNE=";
};
patches = [
./revert-PUBLIC.patch
# Re-enable RTTI, without which other applications can't subclass snappy::Source
# While the patch was rejected upstream, it does not make it any less necessary to carry forward.
# ==> lack of RTTI *breaks* Ceph (and others) <==
#
# https://tracker.ceph.com/issues/53060
# https://build.opensuse.org/package/show/openSUSE:Factory/snappy
#
# Should this patch fail to apply use the above site to get the updated patch (rev in the url below).
# On the page there's a "latest revision" section which lists the last request which was merged into it.
# Click the "Request <insert number>" link, then view any file using "View file", and copy the rev from your address bar.
# For a different revision (in case nixpkgs is behind or something) you can go through the full revision history.
# Should the patch not be available for the nixpkgs version, ideally wait until the patch becomes available before bumping, or vendor it if necessary.
(fetchpatch {
url = "https://build.opensuse.org/public/source/openSUSE:Factory/snappy/reenable-rtti.patch?rev=e3449869b466869fc6b8a03a1a528fa6";
hash = "sha256-JhVhkHh7XPx1Bzf5xnOgWLgwh1oihX3O+emQWzE4Dho=";
})
];
outputs = [
"out"
"dev"
];
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
"-DSNAPPY_BUILD_TESTS=OFF"
"-DSNAPPY_BUILD_BENCHMARKS=OFF"
];
postInstall = ''
substituteInPlace "$out"/lib/cmake/Snappy/SnappyTargets.cmake \
--replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include"' 'INTERFACE_INCLUDE_DIRECTORIES "'$dev'"'
mkdir -p $dev/lib/pkgconfig
cat <<EOF > $dev/lib/pkgconfig/snappy.pc
Name: snappy
Description: Fast compressor/decompressor library.
Version: ${version}
Libs: -L$out/lib -lsnappy
Cflags: -I$dev/include
EOF
'';
#checkTarget = "test";
# requires gbenchmark and gtest but it also installs them out $dev
doCheck = false;
meta = with lib; {
homepage = "https://google.github.io/snappy/";
license = licenses.bsd3;
description = "Compression/decompression library for very high speeds";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,11 @@
https://github.com/google/snappy/issues/206
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -261,7 +261,6 @@ target_sources(snappy
"snappy-stubs-internal.cc"
"snappy.cc"
"${PROJECT_BINARY_DIR}/config.h"
- PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/snappy-c.h>
$<INSTALL_INTERFACE:include/snappy-c.h>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/snappy-sinksource.h>

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchurl,
writeText,
dataPath ? "/var/lib/snappymail",
}:
stdenv.mkDerivation rec {
pname = "snappymail";
version = "2.38.2";
src = fetchurl {
url = "https://github.com/the-djmaze/snappymail/releases/download/v${version}/snappymail-${version}.tar.gz";
sha256 = "sha256-cfHYqQZcyc993QZPXEfMeyVctw5qVnE2R/xz1LeeM+w=";
};
sourceRoot = "snappymail";
includeScript = writeText "include.php" ''
<?php
# the trailing `/` is important here
define('APP_DATA_FOLDER_PATH', '${dataPath}/');
'';
installPhase = ''
mkdir $out
cp -r ../* $out
rm -rf $out/{data,env-vars,_include.php}
cp ${includeScript} $out/include.php
'';
meta = {
description = "Simple, modern & fast web-based email client";
homepage = "https://snappymail.eu";
changelog = "https://github.com/the-djmaze/snappymail/blob/v${version}/CHANGELOG.md";
downloadPage = "https://github.com/the-djmaze/snappymail/releases";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ mic92 ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
smartmontools,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "snapraid";
version = "12.4";
src = fetchFromGitHub {
owner = "amadvance";
repo = "snapraid";
rev = "v${version}";
hash = "sha256-7guTRH9AZCsQYyWLpws19/sEe9GVFop21GYPzXCK6Fg=";
};
VERSION = version;
doCheck = true;
nativeBuildInputs = [
autoreconfHook
makeWrapper
];
# SMART is only supported on Linux and requires the smartmontools package
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
wrapProgram $out/bin/snapraid \
--prefix PATH : ${lib.makeBinPath [ smartmontools ]}
'';
meta = {
homepage = "http://www.snapraid.it/";
description = "Backup program for disk arrays";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.makefu ];
platforms = lib.platforms.unix;
mainProgram = "snapraid";
};
}

View File

@@ -0,0 +1,106 @@
{
stdenv,
lib,
fetchurl,
glycin-loaders,
cargo,
desktop-file-utils,
jq,
meson,
moreutils,
ninja,
pkg-config,
rustc,
rustPlatform,
wrapGAppsHook4,
glib,
gst_all_1,
gtk4,
libadwaita,
libcamera,
libseccomp,
pipewire,
gnome,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snapshot";
version = "48.0.1";
src = fetchurl {
url = "mirror://gnome/sources/snapshot/${lib.versions.major finalAttrs.version}/snapshot-${finalAttrs.version}.tar.xz";
hash = "sha256-OTF2hZogt9I138MDAxuiDGhkQRBpiNyRHdkbe21m4f0=";
};
patches = [
# Fix paths in glycin library
glycin-loaders.passthru.glycinPathsPatch
];
cargoVendorDir = "vendor";
nativeBuildInputs = [
cargo
desktop-file-utils
jq
meson
moreutils # sponge is used in postPatch
ninja
pkg-config
rustc
rustPlatform.cargoSetupHook
wrapGAppsHook4
];
buildInputs = [
glib
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-rs # for gtk4paintablesink
gst_all_1.gstreamer
gtk4
libadwaita
libcamera # for the gstreamer plugin
libseccomp
pipewire # for device provider
];
postPatch = ''
# Replace hash of file we patch in vendored glycin.
jq \
--arg hash "$(sha256sum vendor/glycin/src/sandbox.rs | cut -d' ' -f 1)" \
'.files."src/sandbox.rs" = $hash' \
vendor/glycin/.cargo-checksum.json \
| sponge vendor/glycin/.cargo-checksum.json
substituteInPlace src/meson.build --replace-fail \
"'src' / rust_target / meson.project_name()" \
"'src' / '${stdenv.hostPlatform.rust.cargoShortTarget}' / rust_target / meson.project_name()"
'';
preFixup = ''
gappsWrapperArgs+=(
# vp8enc preset
--prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets"
# See https://gitlab.gnome.org/sophie-h/glycin/-/blob/0.1.beta.2/glycin/src/config.rs#L44
--prefix XDG_DATA_DIRS : "${glycin-loaders}/share"
)
'';
# For https://gitlab.gnome.org/GNOME/snapshot/-/blob/34236a6dded23b66fdc4e4ed613e5b09eec3872c/src/meson.build#L57
env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec;
passthru.updateScript = gnome.updateScript {
packageName = "snapshot";
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/GNOME/snapshot";
description = "Take pictures and videos on your computer, tablet, or phone";
teams = [ teams.gnome ];
license = licenses.gpl3Plus;
platforms = platforms.unix;
mainProgram = "snapshot";
};
})

View File

@@ -0,0 +1,40 @@
{
buildNpmPackage,
lib,
fetchFromGitHub,
pkg-config,
vips,
}:
buildNpmPackage rec {
pname = "snapweb";
version = "0.9.2";
src = fetchFromGitHub {
owner = "badaix";
repo = "snapweb";
rev = "v${version}";
hash = "sha256-7W7rvJPVcRtXcQt+wWAvrl0DOIh7zEfXZdFDcH23/ls=";
};
npmDepsHash = "sha256-STZ/+vmiUAOZ8+yeaFg+428pZ/iZZXXUeGx6gLmnDQ8=";
# For 'sharp' dependency, otherwise it will try to build it
nativeBuildInputs = [ pkg-config ];
buildInputs = [ vips ];
installPhase = ''
runHook preInstall
cp -r dist $out/
runHook postInstall
'';
meta = with lib; {
description = "Web client for Snapcast";
homepage = "https://github.com/badaix/snapweb";
maintainers = with maintainers; [ ettom ];
license = licenses.gpl3Plus;
};
}

View File

@@ -0,0 +1,63 @@
{
stdenv,
fetchFromGitHub,
lib,
rustPlatform,
curl,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage rec {
pname = "snarkos";
version = "2.2.7";
src = fetchFromGitHub {
owner = "AleoHQ";
repo = "snarkOS";
rev = "v${version}";
sha256 = "sha256-+z9dgg5HdR+Gomug03gI1zdCU6t4SBHkl1Pxoq69wrc=";
};
cargoHash = "sha256-riUOxmuXDP5+BPSPu5+cLBP43bZxAqvVG/k5kvThSAs=";
# buildAndTestSubdir = "cli";
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [
pkg-config
rustPlatform.bindgenHook
];
# Needed to get openssl-sys to use pkg-config.
OPENSSL_NO_VENDOR = 1;
OPENSSL_LIB_DIR = "${lib.getLib openssl}/lib";
OPENSSL_DIR = "${lib.getDev openssl}";
# TODO check why rust compilation fails by including the rocksdb from nixpkgs
# Used by build.rs in the rocksdb-sys crate. If we don't set these, it would
# try to build RocksDB from source.
# ROCKSDB_INCLUDE_DIR="${rocksdb}/include";
# ROCKSDB_LIB_DIR="${rocksdb}/lib";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
curl
];
# some tests are flaky and some need network access
# TODO finish filtering the tests to enable them
doCheck = !stdenv.hostPlatform.isLinux;
# checkFlags = [
# # tries to make a network access
# "--skip=rpc::rpc::tests::test_send_transaction_large"
# # flaky test
# "--skip=helpers::block_requests::tests::test_block_requests_case_2ca"
# ];
meta = with lib; {
description = "Decentralized Operating System for Zero-Knowledge Applications";
homepage = "https://snarkos.org";
license = licenses.asl20;
maintainers = with maintainers; [ happysalada ];
platforms = platforms.unix;
mainProgram = "snarkos";
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "snazy";
version = "0.58.1";
src = fetchFromGitHub {
owner = "chmouel";
repo = "snazy";
rev = version;
hash = "sha256-sm3FTQ3+cILoKkMe3qvZg2K+rspvJI3SXpDFD3YPXXk=";
};
cargoHash = "sha256-uRX6qE7tlCvJlWuLtgvuL2DLnqf7+exHLZjAoF0F2PM=";
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd snazy \
--bash <($out/bin/snazy --shell-completion bash) \
--fish <($out/bin/snazy --shell-completion fish) \
--zsh <($out/bin/snazy --shell-completion zsh)
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/snazy --help
$out/bin/snazy --version | grep "snazy ${version}"
runHook postInstallCheck
'';
meta = with lib; {
description = "Snazzy json log viewer";
mainProgram = "snazy";
longDescription = ''
Snazy is a simple tool to parse json logs and output them in a nice format
with nice colors.
'';
homepage = "https://github.com/chmouel/snazy/";
changelog = "https://github.com/chmouel/snazy/releases/tag/${src.rev}";
license = licenses.asl20;
maintainers = with maintainers; [
figsoda
jk
];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
alsa-lib,
fftw,
gsl,
motif,
xorg,
}:
stdenv.mkDerivation rec {
pname = "snd";
version = "25.7";
src = fetchurl {
url = "mirror://sourceforge/snd/snd-${version}.tar.gz";
hash = "sha256-tkPb5gkeyFAJ2kAflZXUiR7langzn9NEUyjgEGDH+9w=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
fftw
gsl
motif
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
]
++ (with xorg; [
libXext
libXft
libXpm
libXt
]);
configureFlags = [
"--with-motif"
];
enableParallelBuilding = true;
meta = with lib; {
description = "Sound editor";
homepage = "https://ccrma.stanford.edu/software/snd/";
platforms = platforms.unix;
license = licenses.free;
maintainers = [ ];
mainProgram = "snd";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchurl,
alsa-lib,
fixDarwinDylibNames,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sndio";
version = "1.10.0";
src = fetchurl {
url = "https://www.sndio.org/sndio-${finalAttrs.version}.tar.gz";
hash = "sha256-vr07/QHFDJN2zz54FLk3m+2eF9A5O1ETt+t6PQ0DjFQ=";
};
nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
buildInputs = lib.optional stdenv.hostPlatform.isLinux alsa-lib;
configurePlatforms = [ ];
postInstall = ''
install -Dm644 contrib/sndiod.service $out/lib/systemd/system/sndiod.service
'';
enableParallelBuilding = true;
# does not provide --disable-static
dontDisableStatic = true;
passthru.updateScript = gitUpdater {
url = "https://sndio.org/git/sndio";
rev-prefix = "v";
};
meta = {
homepage = "https://www.sndio.org";
description = "Small audio and MIDI framework part of the OpenBSD project";
license = lib.licenses.isc;
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
libsndfile,
libglut,
alsa-lib,
libgbm,
libGLU,
libX11,
libXmu,
libXext,
libXi,
}:
stdenv.mkDerivation rec {
pname = "sndpeek";
version = "1.4";
src = fetchurl {
url = "https://soundlab.cs.princeton.edu/software/sndpeek/files/sndpeek-${version}.tgz";
sha256 = "2d86cf74854fa00dcdc05a35dd92bc4cf6115e87102b17023be5cba9ead8eedf";
};
sourceRoot = "sndpeek-${version}/src/sndpeek";
# this patch adds -lpthread to the list of libraries, without it a
# symbol-not-found-error is thrown
patches = [ ./pthread.patch ];
buildInputs = [
libglut
alsa-lib
libgbm
libGLU
libsndfile
libX11
libXmu
libXext
libXi
];
buildFlags = [ "linux-alsa" ];
installPhase = ''
mkdir -p $out/bin
mv sndpeek $out/bin
'';
meta = with lib; {
description = "Real-time 3D animated audio display/playback";
longDescription = ''
sndpeek is just what it sounds (and looks) like:
* real-time 3D animated display/playback
* can use mic-input or wav/aiff/snd/raw/mat file (with playback)
* time-domain waveform
* FFT magnitude spectrum
* 3D waterfall plot
* lissajous! (interchannel correlation)
* rotatable and scalable display
* freeze frame! (for didactic purposes)
* real-time spectral feature extraction (centroid, rms, flux, rolloff)
* available on MacOS X, Linux, and Windows under GPL
* part of the sndtools distribution.
'';
homepage = "https://soundlab.cs.princeton.edu/software/sndpeek/";
license = licenses.gpl2;
maintainers = [ maintainers.laikq ];
mainProgram = "sndpeek";
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/makefile.alsa b/makefile.alsa
index 34fb848..cdaeaec 100644
--- a/makefile.alsa
+++ b/makefile.alsa
@@ -4,7 +4,7 @@ CPP=g++
INCLUDES=-I../marsyas/
MARSYAS_DIR=../marsyas/
CFLAGS=-D__LINUX_ALSA__ -D__LITTLE_ENDIAN__ $(INCLUDES) -O3 -c
-LIBS=-L/usr/X11R6/lib -lglut -lGL -lGLU -lasound -lXmu -lX11 -lXext -lXi -lm -lsndfile
+LIBS=-L/usr/X11R6/lib -lglut -lGL -lGLU -lasound -lXmu -lX11 -lXext -lXi -lm -lsndfile -lpthread
OBJS=chuck_fft.o RtAudio.o Thread.o sndpeek.o Stk.o \
Centroid.o DownSampler.o Flux.o LPC.o MFCC.o RMS.o Rolloff.o \

View File

@@ -0,0 +1,40 @@
{
"depends": [
{
"method": "fetchzip",
"packages": [
"nimraylib_now"
],
"path": "/nix/store/vcq7r99jnqh6cj6cdd5227pymk9rnk7g-source",
"ref": "v0.15.0",
"rev": "59154abcbc4cf89b4c674f402db026dea216da7b",
"sha256": "0b6rn9y1d5fpkdf16g0bjrkj39sq1iyq0zlkwi1xmsbq681j5inp",
"srcDir": "src",
"url": "https://github.com/greenfork/nimraylib_now/archive/59154abcbc4cf89b4c674f402db026dea216da7b.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"regex"
],
"path": "/nix/store/vfs4ysdw2kvyp18jwpbvb9wfh1ajz0a9-source",
"ref": "v0.23.0",
"rev": "577c4ec3b235c5fd2653a9c86cbc4a576cfc0869",
"sha256": "0401f9m2m2h6bikl3hffyhaw5fc2nbjdf5mj4z9wckmm9lx9hpkl",
"srcDir": "src",
"url": "https://github.com/nitely/nim-regex/archive/577c4ec3b235c5fd2653a9c86cbc4a576cfc0869.tar.gz"
},
{
"method": "fetchzip",
"packages": [
"unicodedb"
],
"path": "/nix/store/wpilzdf8vdwp7w129yrl821p9qvl3ky3-source",
"ref": "0.12.0",
"rev": "b055310c08db8f879057b4fec15c8301ee93bb2a",
"sha256": "0w77h75vrgp6jiq4dd9i2m4za2cf8qhjkz2wlxiz27yn2isjrndy",
"srcDir": "src",
"url": "https://github.com/nitely/nim-unicodedb/archive/b055310c08db8f879057b4fec15c8301ee93bb2a.tar.gz"
}
]
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildNimPackage,
fetchFromGitea,
}:
buildNimPackage (finalAttrs: {
pname = "snekim";
version = "1.2.0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "annaaurora";
repo = "snekim";
rev = "v${finalAttrs.version}";
hash = "sha256-Qgvq4CkGvNppYFpITCCifOHtVQYRQJPEK3rTJXQkTvI=";
};
strictDeps = true;
lockFile = ./lock.json;
nimFlags = [ "-d:nimraylib_now_shared" ];
postInstall = ''
install -D snekim.desktop -t $out/share/applications
install -D icons/hicolor/48x48/snekim.svg -t $out/share/icons/hicolor/48x48/apps
'';
meta = {
homepage = "https://codeberg.org/annaaurora/snekim";
description = "Simple implementation of the classic snake game";
mainProgram = "snekim";
license = lib.licenses.lgpl3Only;
maintainers = [ lib.maintainers.annaaurora ];
};
})

View File

@@ -0,0 +1,7 @@
{
snes9x,
}:
snes9x.override {
withGtk = true;
}

View File

@@ -0,0 +1,143 @@
{
lib,
SDL2,
alsa-lib,
cmake,
fetchFromGitHub,
gtkmm3,
libGLX,
libX11,
libXdmcp,
libXext,
libXinerama,
libXrandr,
libXv,
libepoxy,
libpng,
libselinux,
minizip,
ninja,
pcre2,
pkg-config,
portaudio,
pulseaudio,
python3,
stdenv,
util-linuxMinimal,
wrapGAppsHook3,
zlib,
# Boolean flags
withGtk ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snes9x" + lib.optionalString withGtk "-gtk";
version = "1.63";
src = fetchFromGitHub {
owner = "snes9xgit";
repo = "snes9x";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-INMVyB3alwmsApO7ToAaUWgh7jlg2MeLxqHCEnUO88U=";
};
nativeBuildInputs = [
pkg-config
python3
]
++ lib.optionals withGtk [
cmake
ninja
wrapGAppsHook3
];
buildInputs = [
libX11
libXv
minizip
zlib
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
pulseaudio
libselinux
util-linuxMinimal # provides libmount
]
++ lib.optionals (!withGtk) [
libpng
libXext
libXinerama
]
++ lib.optionals withGtk [
gtkmm3
libepoxy
libXdmcp
libXrandr
pcre2
portaudio
SDL2
];
hardeningDisable = [ "format" ];
configureFlags =
lib.optionals stdenv.hostPlatform.sse4_1Support [
"--enable-sse41"
]
++ lib.optionals stdenv.hostPlatform.avx2Support [
"--enable-avx2"
];
postPatch = lib.optionalString withGtk ''
substituteInPlace external/glad/src/egl.c \
--replace-fail libEGL.so.1 "${lib.getLib libGLX}/lib/libEGL.so.1"
substituteInPlace external/glad/src/glx.c \
--replace-fail libGL.so.1 ${lib.getLib libGLX}/lib/libGL.so.1
'';
preConfigure = ''
cd ${if withGtk then "gtk" else "unix"}
'';
installPhase = lib.optionalString (!withGtk) ''
runHook preInstall
install -Dm755 snes9x -t "$out/bin/"
install -Dm644 snes9x.conf.default -t "$out/share/doc/snes9x/"
install -Dm644 ../docs/{control-inputs,controls,snapshots}.txt -t \
"$out/share/doc/snes9x/"
runHook postInstall
'';
enableParallelBuilding = true;
meta =
let
interface = if withGtk then "GTK" else "X11";
in
{
homepage = "https://www.snes9x.com";
description = "Super Nintendo Entertainment System (SNES) emulator, ${interface} version";
longDescription = ''
Snes9x is a portable, freeware Super Nintendo Entertainment System (SNES)
emulator. It basically allows you to play most games designed for the SNES
and Super Famicom Nintendo game systems on your PC or Workstation; which
includes some real gems that were only ever released in Japan.
Version build with ${interface} interface.
'';
license = lib.licenses.unfreeRedistributable // {
url = "https://github.com/snes9xgit/snes9x/blob/${finalAttrs.src.tag}/LICENSE";
};
mainProgram = "snes9x";
maintainers = with lib.maintainers; [
qknight
thiagokokada
sugar700
];
platforms = lib.platforms.unix;
broken = (withGtk && stdenv.hostPlatform.isDarwin);
};
})

View File

@@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "snet";
version = "unstable-2021-11-26";
src = fetchFromGitHub {
owner = "monsterxx03";
repo = "snet";
rev = "89089b55277ce3e21e2ed79a9d307f2ecc62c6db";
sha256 = "sha256-lTbygQRABv+Dp4i7nDgXYqi4pwU2rtLNfpgtBgsq+7Y=";
};
vendorHash = "sha256-dubmCLeD8Fwe1msfLN+5WzdbFkfTRnZDU3F49gjWTS4=";
# flaky test, random failures
checkFlags = [ "-skip=TestBloomfilter" ];
meta = {
description = "Transparent proxy works on linux desktop, MacOS, router";
homepage = "https://github.com/monsterxx03/snet";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ azuwis ];
mainProgram = "snet";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
asciidoctor,
fetchurl,
libpng,
netpbm,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sng";
version = "1.1.1";
src = fetchurl {
url = "mirror://sourceforge/sng/sng-${finalAttrs.version}.tar.xz";
hash = "sha256-yb37gPWhfbGquTN7rtZKjr6lwN34KRXGiHuM+4fs5h4=";
};
nativeBuildInputs = [ asciidoctor ];
buildInputs = [ libpng ];
outputs = [
"out"
"man"
];
makeFlags = [
"prefix=$(out)"
"MANDIR=$(outputMan)/share/man"
"RGBTXT=${netpbm.out}/share/netpbm/misc/rgb.txt"
];
strictDeps = true;
meta = {
homepage = "https://sng.sourceforge.net/";
description = "Minilanguage designed to represent the entire contents of a PNG file in an editable form";
license = lib.licenses.zlib;
mainProgram = "sng";
maintainers = with lib.maintainers; [
dezgeg
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
autoconf,
automake,
fetchFromGitHub,
libpcap,
ncurses,
openssl,
pcre,
}:
stdenv.mkDerivation rec {
pname = "sngrep";
version = "1.8.2";
src = fetchFromGitHub {
owner = "irontec";
repo = "sngrep";
rev = "v${version}";
sha256 = "sha256-nvuT//FWJAa6DzmjBsBW9s2p1M+6Zs4cVmpK4dVemnE=";
};
nativeBuildInputs = [
autoconf
automake
];
buildInputs = [
libpcap
ncurses
ncurses
openssl
pcre
];
configureFlags = [
"--with-pcre"
"--enable-unicode"
"--enable-ipv6"
"--enable-eep"
"--with-openssl"
];
preConfigure = ''
./bootstrap.sh
'';
doCheck = true;
meta = with lib; {
description = "Tool for displaying SIP calls message flows from terminal";
mainProgram = "sngrep";
homepage = "https://github.com/irontec/sngrep";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ jorise ];
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "snicat";
version = "0.0.1-unstable-2024-09-05";
src = fetchFromGitHub {
owner = "CTFd";
repo = "snicat";
rev = "8c8f06e59d5aedb9a97115a4e0eafa75b17a6cdf";
hash = "sha256-71wVth+VzEnGW8ErWmj6XjhNtVpx/q8lViIA71njwqU=";
};
vendorHash = "sha256-27ykI9HK1jFanxwa6QrN6ZS548JbFNSZHaXr4ciCVOE=";
proxyVendor = true;
ldflags = [
"-s"
"-X main.version=v${version}"
];
postInstall = ''
mv $out/bin/snicat $out/bin/sc
'';
meta = with lib; {
description = "TLS & SNI aware netcat";
homepage = "https://github.com/CTFd/snicat";
license = licenses.asl20;
mainProgram = "sc";
maintainers = with maintainers; [ felixalbrigtsen ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
libpcap,
libseccomp,
pkg-config,
rustPlatform,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "sniffglue";
version = "0.16.1";
src = fetchFromGitHub {
owner = "kpcyrd";
repo = "sniffglue";
rev = "v${version}";
hash = "sha256-Pp/SJJQFpEU/4GKZQB8BjRGS4hqB850QbSb5WoG6Wh4=";
};
cargoHash = "sha256-4aOp9z1xAZ4+GfvcP4rwiS35BfNBnftNhK/oJDixa8w=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpcap
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libseccomp
];
meta = with lib; {
description = "Secure multithreaded packet sniffer";
homepage = "https://github.com/kpcyrd/sniffglue";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ xrelkd ];
platforms = platforms.linux ++ platforms.darwin;
mainProgram = "sniffglue";
};
}

View File

@@ -0,0 +1,106 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
# nativeBuildInputs
pkg-config,
# buildInputs
libpcap,
openssl,
alsa-lib,
expat,
fontconfig,
vulkan-loader,
xorg,
# wrapper
libxkbcommon,
wayland,
# tests
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "sniffnet";
version = "1.4.1";
src = fetchFromGitHub {
owner = "gyulyvgc";
repo = "sniffnet";
tag = "v${finalAttrs.version}";
hash = "sha256-EgnFDF+K8qGjunWB20VA8bXLzNvyGzcIaim+smhW5fU=";
};
cargoHash = "sha256-22P1EeZ2FqwIHjr23oJCKvg3ggT1Me93goELwZ/B9S4=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpcap
openssl
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
expat
fontconfig
vulkan-loader
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
rustPlatform.bindgenHook
];
# requires internet access
checkFlags = [
"--skip=secondary_threads::check_updates::tests::fetch_latest_release_from_github"
"--skip=utils::check_updates::tests::fetch_latest_release_from_github"
];
postInstall = ''
for res in $(ls resources/packaging/linux/graphics | sed -e 's/sniffnet_//g' -e 's/x.*//g'); do
install -Dm444 resources/packaging/linux/graphics/sniffnet_''${res}x''${res}.png \
$out/share/icons/hicolor/''${res}x''${res}/apps/sniffnet.png
done
install -Dm444 resources/packaging/linux/sniffnet.desktop -t $out/share/applications
substituteInPlace $out/share/applications/sniffnet.desktop \
--replace 'Exec=/usr/bin/sniffnet' 'Exec=sniffnet'
'';
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf $out/bin/sniffnet \
--add-rpath ${
lib.makeLibraryPath [
vulkan-loader
xorg.libX11
libxkbcommon
wayland
]
}
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
meta = {
description = "Cross-platform application to monitor your network traffic with ease";
homepage = "https://github.com/gyulyvgc/sniffnet";
changelog = "https://github.com/gyulyvgc/sniffnet/blob/v${finalAttrs.version}/CHANGELOG.md";
license = with lib.licenses; [
mit # or
asl20
];
maintainers = with lib.maintainers; [ figsoda ];
teams = [ lib.teams.ngi ];
mainProgram = "sniffnet";
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
pname = "sniglet";
version = "2011-05-25";
src = fetchFromGitHub {
owner = "theleagueof";
repo = "sniglet";
rev = "5c6b0860bdd0d8c4f16222e4de3918c384db17c4";
hash = "sha256-fLT2hZT9o1Ka30EB/6oWwmalhVJ+swXLRFG99yRWd2c=";
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/truetype $src/*.ttf
install -D -m444 -t $out/share/fonts/opentype $src/*.otf
runHook postInstall
'';
meta = {
description = "Fun rounded display face thats great for headlines";
longDescription = ''
A rounded display face thats great for headlines. It comes with a full
character set, so you can type in Icelandic or even French!
'';
homepage = "https://www.theleagueofmoveabletype.com/sniglet";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ minijackson ];
};
}

View File

@@ -0,0 +1,38 @@
{
appimageTools,
lib,
fetchurl,
}:
let
pname = "snipaste";
version = "2.10.8";
src = fetchurl {
url = "https://download.snipaste.com/archives/Snipaste-${version}-x86_64.AppImage";
hash = "sha256-Ieitxc1HPjqBpf7/rREKca+U0srE+q/s8mz+9Vhczk0=";
};
contents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
passthru.updateScript = ./update.sh;
extraInstallCommands = ''
install -d $out/share/{applications,icons}
cp ${contents}/usr/share/applications/*.desktop -t $out/share/applications/
cp -r ${contents}/usr/share/icons/* -t $out/share/icons/
substituteInPlace $out/share/applications/*.desktop --replace-warn 'Exec=Snipaste' 'Exec=${pname}'
'';
meta = {
description = "Screenshot tools";
homepage = "https://www.snipaste.com/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
luftmensch-luftmensch
ltrump
];
mainProgram = "snipaste";
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
}

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash curl coreutils jq common-updater-scripts
latestTag=$(curl -sSfL https://www.snipaste.com/linux_version | jq -r ".subject")
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; snipaste.version" | tr -d '"')
if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "package is up-to-date"
exit 0
fi
prefetch=$(nix-prefetch-url "https://download.snipaste.com/archives/Snipaste-$latestVersion-x86_64.AppImage")
hash=$(nix-hash --type sha256 --to-sri "$prefetch")
update-source-version snipaste "$latestVersion" "$hash" --ignore-same-version

View File

@@ -0,0 +1,65 @@
{
lib,
dataDir ? "/var/lib/snipe-it",
fetchFromGitHub,
mariadb,
nixosTests,
php84,
}:
let
php = php84;
in
php.buildComposerProject2 (finalAttrs: {
pname = "snipe-it";
version = "8.3.3";
src = fetchFromGitHub {
owner = "grokability";
repo = "snipe-it";
tag = "v${finalAttrs.version}";
hash = "sha256-Ttvq5KXTLtl3ZCRQACtVj4jC2cVGfDd+hUdRO3CbQjU=";
};
vendorHash = "sha256-Y5Jf9x0YIFHkuRwMR9X2D0b5/ULr6sTjmPHnQRXbF/s=";
postInstall = ''
snipe_it_out="$out/share/php/snipe-it"
# Before symlinking the following directories, copy the invalid_barcode.gif
# to a different location. The `snipe-it-setup` oneshot service will then
# copy the file back during bootstrap.
mkdir -p $out/share/snipe-it
cp $snipe_it_out/public/uploads/barcodes/invalid_barcode.gif $out/share/snipe-it/
rm -R $snipe_it_out/storage $snipe_it_out/public/uploads $snipe_it_out/bootstrap/cache
ln -s ${dataDir}/.env $snipe_it_out/.env
ln -s ${dataDir}/storage $snipe_it_out/
ln -s ${dataDir}/public/uploads $snipe_it_out/public/uploads
ln -s ${dataDir}/bootstrap/cache $snipe_it_out/bootstrap/cache
chmod +x $snipe_it_out/artisan
substituteInPlace $snipe_it_out/config/database.php --replace-fail "env('DB_DUMP_PATH', '/usr/local/bin')" "env('DB_DUMP_PATH', '${mariadb}/bin')"
'';
passthru = {
tests = nixosTests.snipe-it;
phpPackage = php;
};
meta = {
description = "Free open source IT asset/license management system";
longDescription = ''
Snipe-IT was made for IT asset management, to enable IT departments to track
who has which laptop, when it was purchased, which software licenses and accessories
are available, and so on.
Details for snipe-it can be found on the official website at https://snipeitapp.com/.
'';
homepage = "https://snipeitapp.com/";
changelog = "https://github.com/snipe/snipe-it/releases/tag/v${finalAttrs.version}";
license = lib.licenses.agpl3Only;
maintainers = with lib.maintainers; [ yayayayaka ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
SDL2,
SDL2_ttf,
}:
let
font = fetchurl {
url = "http://kingbird.myphotos.cc/ee22d44076adb8a34d8e20df4be3730a/SnipesConsole.ttf";
sha256 = "06n8gq18js0bv4svx84ljzhs9zmi81wy0zqcqj3b4g0rsrkr20a7";
};
in
stdenv.mkDerivation {
pname = "snipes";
version = "20240317";
src = fetchFromGitHub {
owner = "Davidebyzero";
repo = "Snipes";
rev = "caa2ce036a9f6461ccdb7ef8306edbd126dd4081";
sha256 = "sha256-iIoh5odCziX1cKs5qf4hJdXpUhy9kdht0YMLLfhvKZA=";
};
postPatch = ''
substitute config-sample.h config.h \
--replace SnipesConsole.ttf $out/share/snipes/SnipesConsole.ttf
'';
enableParallelBuilding = true;
buildInputs = [
SDL2
SDL2_ttf
];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin snipes
install -Dm644 -t $out/share/doc/snipes *.md
install -Dm644 ${font} $out/share/snipes/SnipesConsole.ttf
runHook postInstall
'';
meta = with lib; {
description = "Modern port of the classic 1982 text-mode game Snipes";
mainProgram = "snipes";
homepage = "https://www.vogons.org/viewtopic.php?f=7&t=49073";
license = licenses.free; # This reverse-engineered source code is released with the original authors' permission.
maintainers = with maintainers; [
peterhoeg
cybershadow
];
broken = stdenv.hostPlatform.isDarwin; # not supported upstream - https://github.com/Davidebyzero/Snipes/issues/8#issuecomment-433720046
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
buildGoModule,
makeWrapper,
scdoc,
installShellFiles,
snippetexpanderd,
snippetexpanderx,
}:
buildGoModule rec {
inherit (snippetexpanderd) src version;
pname = "snippetexpander";
vendorHash = "sha256-2nLO/b6XQC88VXE+SewhgKpkRtIHsva+fDudgKpvZiY=";
proxyVendor = true;
modRoot = "cmd/snippetexpander";
nativeBuildInputs = [
makeWrapper
scdoc
installShellFiles
];
buildInputs = [
snippetexpanderd
snippetexpanderx
];
ldflags = [
"-s"
"-w"
"-X 'main.version=${src.rev}'"
];
postInstall = ''
make man
installManPage snippetexpander.1
'';
postFixup = ''
# Ensure snippetexpanderd and snippetexpanderx are available to start/stop.
wrapProgram $out/bin/snippetexpander \
--prefix PATH : ${
lib.makeBinPath [
snippetexpanderd
snippetexpanderx
]
}
'';
meta = {
description = "Your little expandable text snippet helper CLI";
homepage = "https://snippetexpander.org";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
mainProgram = "snippetexpander";
};
}

View File

@@ -0,0 +1,76 @@
{
lib,
buildGoModule,
fetchFromSourcehut,
makeWrapper,
scdoc,
installShellFiles,
xclip,
wl-clipboard,
xdotool,
wtype,
}:
buildGoModule rec {
pname = "snippetexpanderd";
version = "1.0.3";
src = fetchFromSourcehut {
owner = "~ianmjones";
repo = "snippetexpander";
rev = "v${version}";
hash = "sha256-NIMuACrq8RodtjeBbBY42VJ8xqj7fZvdQ2w/5QsjjJI=";
};
vendorHash = "sha256-2nLO/b6XQC88VXE+SewhgKpkRtIHsva+fDudgKpvZiY=";
proxyVendor = true;
modRoot = "cmd/snippetexpanderd";
nativeBuildInputs = [
makeWrapper
scdoc
installShellFiles
];
buildInputs = [
xclip
wl-clipboard
xdotool
wtype
];
ldflags = [
"-s"
"-w"
"-X 'main.version=${src.rev}'"
];
postInstall = ''
make man
installManPage snippetexpanderd.1 snippetexpander-placeholders.5
'';
postFixup = ''
# Ensure xclip/wcopy and xdotool/wtype are available for copy and paste duties.
wrapProgram $out/bin/snippetexpanderd \
--prefix PATH : ${
lib.makeBinPath [
xclip
wl-clipboard
xdotool
wtype
]
}
'';
meta = {
description = "Your little expandable text snippet helper daemon";
homepage = "https://snippetexpander.org";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
mainProgram = "snippetexpanderd";
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
buildGoModule,
wrapGAppsHook3,
wails,
scdoc,
installShellFiles,
xorg,
gtk3,
webkitgtk_4_0,
snippetexpanderd,
snippetexpanderx,
}:
buildGoModule rec {
inherit (snippetexpanderd) src version;
pname = "snippetexpandergui";
vendorHash = "sha256-2nLO/b6XQC88VXE+SewhgKpkRtIHsva+fDudgKpvZiY=";
proxyVendor = true;
modRoot = "cmd/snippetexpandergui";
nativeBuildInputs = [
wails
scdoc
installShellFiles
wrapGAppsHook3
];
buildInputs = [
xorg.libX11
gtk3
webkitgtk_4_0
snippetexpanderd
snippetexpanderx
];
ldflags = [
"-s"
"-w"
"-X 'main.version=${src.rev}'"
];
tags = [
"desktop"
"production"
];
postInstall = ''
mv build/linux/share $out/share
make man
installManPage snippetexpandergui.1
'';
preFixup = ''
gappsWrapperArgs+=(
# Ensure snippetexpanderd and snippetexpanderx are available to start/stop.
--prefix PATH : ${
lib.makeBinPath [
snippetexpanderd
snippetexpanderx
]
}
)
'';
meta = {
description = "Your little expandable text snippet helper GUI";
homepage = "https://snippetexpander.org";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
mainProgram = "snippetexpandergui";
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
pkg-config,
vala,
wrapGAppsHook3,
installShellFiles,
scdoc,
at-spi2-atk,
at-spi2-core,
dbus,
gtk3,
ibus,
libgee,
xorg,
snippetexpanderd,
}:
stdenv.mkDerivation rec {
inherit (snippetexpanderd) src version;
pname = "snippetexpanderx";
sourceRoot = "${src.name}/cmd/snippetexpanderx";
nativeBuildInputs = [
pkg-config
vala
wrapGAppsHook3
installShellFiles
scdoc
];
buildInputs = [
at-spi2-atk
at-spi2-core
dbus
gtk3
ibus
libgee
xorg.libX11
snippetexpanderd
];
makeFlags = [ "VERSION=${src.rev}" ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install -m555 snippetexpanderx $out/bin/
installManPage snippetexpanderx.1
runHook postInstall
'';
# There are no tests.
doCheck = false;
meta = {
description = "Your little expandable text snippet helper auto expander daemon";
homepage = "https://snippetexpander.org";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
mainProgram = "snippetexpanderx";
};
}

View File

@@ -0,0 +1,91 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
vala,
pkg-config,
wrapGAppsHook3,
appstream,
desktop-file-utils,
python3,
libgee,
glib,
gtk3,
sqlite,
at-spi2-atk,
at-spi2-core,
dbus,
ibus,
json-glib,
pantheon,
xorg,
}:
stdenv.mkDerivation rec {
pname = "snippetpixie";
version = "1.5.3";
src = fetchFromGitHub {
owner = "bytepixie";
repo = "snippetpixie";
rev = version;
sha256 = "0gs3d9hdywg4vcfbp4qfcagfjqalfgw9xpvywg4pw1cm3rzbdqmz";
};
nativeBuildInputs = [
meson
ninja
vala
pkg-config
wrapGAppsHook3
appstream
desktop-file-utils
python3
];
buildInputs = [
libgee
glib
gtk3
sqlite
at-spi2-atk
at-spi2-core
dbus
ibus
json-glib
xorg.libXtst
pantheon.granite
];
doCheck = true;
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Your little expandable text snippet helper";
longDescription = ''
Your little expandable text snippet helper.
Save your often used text snippets and then expand them whenever you type their abbreviation.
For example:- "spr`" expands to "Snippet Pixie rules!"
For non-accessible applications such as browsers and Electron apps, there's a shortcut (default is Ctrl+`) for opening a search window that pastes the selected snippet.
'';
homepage = "https://www.snippetpixie.com";
license = licenses.gpl2Plus;
teams = [ teams.pantheon ];
platforms = platforms.linux;
mainProgram = "com.github.bytepixie.snippetpixie";
};
}

View File

@@ -0,0 +1,14 @@
diff --git a/configure.ac b/configure.ac
index cac74f1..a6bc935 100644
--- a/configure.ac
+++ b/configure.ac
@@ -9,6 +9,9 @@ AM_INIT_AUTOMAKE([subdir-objects])
AM_SILENT_RULES([yes])
AC_GNU_SOURCE
+AM_GNU_GETTEXT_VERSION([0.25])
+AM_GNU_GETTEXT([external])
+
# Checks for programs.
AC_PROG_CC_C99
# Required by automake < 1.14

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchurl,
autoreconfHook,
gettext,
libev,
pcre2,
pkg-config,
udns,
}:
stdenv.mkDerivation rec {
pname = "sniproxy";
version = "0.6.1";
src = fetchFromGitHub {
owner = "dlundquist";
repo = "sniproxy";
rev = version;
sha256 = "sha256-htM9CrzaGnn1dnsWQ+0V6N65Og7rsFob3BlSc4UGfFU=";
};
patches = [
./gettext-0.25.patch
(fetchurl {
name = "compat-pcre2.patch";
# Using Arch Linux patch because the following upstream patches do not apply cleanly:
# https://github.com/dlundquist/sniproxy/commit/62e621f050f79eb78598b1296a089ef88a19ea91
# https://github.com/dlundquist/sniproxy/commit/7fdd86c054a21f7ac62343010de20f28645b14d2
url = "https://gitlab.archlinux.org/archlinux/packaging/packages/sniproxy/-/raw/3272f9f0d406c51122f90708bfcc7b4ba0eb38c9/sniproxy-0.6.1-pcre2.patch?inline=false";
hash = "sha256-v6qdBAWXit0Zg43OsgzCTb4cSPm7gsEXVd7W8LvBgMk=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
gettext
libev
pcre2
udns
];
meta = with lib; {
homepage = "https://github.com/dlundquist/sniproxy";
description = "Transparent TLS and HTTP layer 4 proxy with SNI support";
license = licenses.bsd2;
maintainers = with maintainers; [
womfoo
raitobezarius
];
platforms = platforms.linux;
mainProgram = "sniproxy";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
sqlite,
libtensorflow,
withTensorflow ? false,
nixosTests,
}:
buildGoModule rec {
pname = "snips-sh";
version = "0.5.0";
vendorHash = "sha256-jitainpBp6YIzdMURI/lLxSi1Wk42Ubncoq6pFj8OKM=";
src = fetchFromGitHub {
owner = "robherley";
repo = "snips.sh";
rev = "v${version}";
hash = "sha256-wumM5LyEQCL38Lmipz+BCB0dycH0Bj7lvUYwsctUg54=";
};
tags = (lib.optional (!withTensorflow) "noguesser");
buildInputs = [ sqlite ] ++ (lib.optional withTensorflow libtensorflow);
passthru.tests = nixosTests.snips-sh;
meta = {
description = "Passwordless, anonymous SSH-powered pastebin with a human-friendly TUI and web UI";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
homepage = "https://snips.sh";
maintainers = with lib.maintainers; [
jeremiahs
matthiasbeyer
];
mainProgram = "snips.sh";
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snis_assets";
version = "2025-07-26";
src = fetchFromGitHub {
owner = "marcin-serwin";
repo = "snis-assets-snapshotter";
tag = finalAttrs.version;
hash = "sha256-K/X66txXKpGtWPRtWXvKiVMYb6vGJtrv2CdHVuXbT8M=";
};
dontConfigure = true;
dontBuild = true;
dontFixup = true;
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r share $out
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Assets for Space Nerds In Space, a multi-player spaceship bridge simulator";
homepage = "https://smcameron.github.io/space-nerds-in-space/";
downloadPage = "https://github.com/marcin-serwin/snis-assets-snapshotter";
license = with lib.licenses; [
gpl2Plus
cc-by-sa-30
cc-by-40
cc-by-30
cc0
publicDomain
free
];
maintainers = with lib.maintainers; [
pentane
marcin-serwin
];
platforms = lib.platforms.linux;
hydraPlatforms = [ ];
};
})

View File

@@ -0,0 +1,94 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
coreutils,
portaudio,
libbsd,
libpng,
libvorbis,
libX11,
sdl2-compat,
makeWrapper,
lua5_2,
glew,
openssl,
picotts,
alsa-utils,
espeak-classic,
sox,
libopus,
openscad,
libxcrypt-legacy,
curlMinimal,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snis";
version = "1.0.9";
src = fetchFromGitHub {
owner = "smcameron";
repo = "space-nerds-in-space";
tag = "v${finalAttrs.version}";
hash = "sha256-H6ZeZOeKy8Z5HGicQs9CmjR2tDzD8AGvLr75Xx0YkAg=";
};
enableParallelBuilding = true;
postPatch = ''
substituteInPlace Makefile \
--replace-fail "OPUSARCHIVE=libopus.a" "OPUSARCHIVE=" \
--replace-fail "-I./opus-1.3.1/include" "-I${libopus.dev}/include/opus"
substituteInPlace snis_text_to_speech.sh \
--replace-fail "pico2wave" "${sox}/bin/pico2wave" \
--replace-fail "espeak" "${espeak-classic}/bin/espeak" \
--replace-fail "aplay" "${alsa-utils}/bin/aplay" \
--replace-fail "play" "${sox}/bin/play" \
--replace-fail "/bin/rm" "${coreutils}/bin/rm"
'';
nativeBuildInputs = [
pkg-config
openscad
makeWrapper
];
buildInputs = [
coreutils
portaudio
libbsd
libpng
libvorbis
libX11
sdl2-compat
lua5_2
glew
openssl
picotts
sox
alsa-utils
libopus
libxcrypt-legacy
curlMinimal
];
makeFlags = [ "PREFIX=$(out)" ];
buildFlags = [
"all"
"models"
];
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Space Nerds In Space, a multi-player spaceship bridge simulator";
homepage = "https://smcameron.github.io/space-nerds-in-space/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ pentane ];
platforms = platforms.linux;
mainProgram = "snis_launcher";
};
})

View File

@@ -0,0 +1,35 @@
{
buildEnv,
snis-unwrapped,
snis-assets,
makeWrapper,
}:
buildEnv {
name = "snis-${snis-unwrapped.version}";
nativeBuildInputs = [ makeWrapper ];
paths = [
snis-unwrapped
snis-assets
];
# Basic assets are also distributed in the main repo
ignoreCollisions = true;
pathsToLink = [
"/"
"/bin"
];
postBuild = ''
for i in $out/bin/*; do
wrapProgram "$i" \
--set SNIS_ASSET_DIR "$out/share/snis"
done
'';
meta = snis-unwrapped.meta // {
hydraPlatforms = [ ];
};
}

View File

@@ -0,0 +1,43 @@
{
fetchFromSourcehut,
gtk3,
lib,
libdbusmenu-gtk3,
pkg-config,
stdenv,
vala,
}:
stdenv.mkDerivation rec {
pname = "snixembed";
version = "0.3.3";
src = fetchFromSourcehut {
owner = "~steef";
repo = "snixembed";
rev = version;
sha256 = "sha256-co32Xlklg6KVyi+xEoDJ6TeN28V+wCSx73phwnl/05E=";
};
nativeBuildInputs = [
pkg-config
vala
];
buildInputs = [
gtk3
libdbusmenu-gtk3
];
makeFlags = [ "PREFIX=$(out)" ];
meta = {
description = "Proxy StatusNotifierItems as XEmbedded systemtray-spec icons";
homepage = "https://git.sr.ht/~steef/snixembed";
changelog = "https://git.sr.ht/~steef/snixembed/refs/${version}";
license = lib.licenses.isc;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ figsoda ];
mainProgram = "snixembed";
};
}

View File

@@ -0,0 +1,35 @@
{
stdenv,
lib,
fetchurl,
ruby,
}:
let
rubyEnv = ruby.withPackages (ps: [ ps.snmp ]);
in
stdenv.mkDerivation rec {
pname = "snmpcheck";
version = "1.9";
src = fetchurl {
url = "http://www.nothink.org/codes/snmpcheck/snmpcheck-${version}.rb";
sha256 = "sha256-9xkLqbgxU1uykx+M9QsbPAH8OI/Cqn9uw6ALe23Lbq0=";
executable = true;
};
dontUnpack = true;
buildInputs = [ rubyEnv.wrappedRuby ];
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/snmp-check
'';
meta = with lib; {
description = "SNMP enumerator";
homepage = "http://www.nothink.org/codes/snmpcheck/";
license = licenses.gpl3Plus;
mainProgram = "snmp-check";
};
}

View File

@@ -0,0 +1,23 @@
--- a/configure
+++ b/configure
@@ -327,9 +327,9 @@
SNOLIB_LOCAL="$SNOLIB/local"
SNOLIB_DOC="$SNOLIB"
# XXX use $PREFIX/include/snobol4 ???
-INCLUDE_DIR="$SNOLIB/include"
+INCLUDE_DIR="$PREFIX"/include/snolib4
-DOC_DIR="$PREFIX/share/doc/snobol4-$VERSION"
+DOC_DIR="$doc/share/doc/snobol4-$VERSION"
echo 'BINDIR=$(DESTDIR)'"$BINDIR" >> $CONFIG_M4
echo 'MANDIR=$(DESTDIR)'"$MANDIR" >> $CONFIG_M4
@@ -2110,7 +2110,7 @@
# IRIX /sbin/install
# should always find ./install-sh
-for DIR in /usr/bin /usr/ucb /usr/local/bin /bin .; do
+for DIR in `echo $PATH | tr ':' ' '`; do
for INSTALL in install ginstall scoinst install-sh; do
IPATH=$DIR/$INSTALL
if [ -d $IPATH ]; then

View File

@@ -0,0 +1,81 @@
{
lib,
fetchurl,
stdenv,
bzip2,
gdbm,
gnum4,
gzip,
libffi,
openssl,
readline,
sqlite,
tcl,
xz,
zlib,
}:
stdenv.mkDerivation rec {
pname = "snobol4";
version = "2.3.3";
src = fetchurl {
urls = [
"https://ftp.regressive.org/snobol4/snobol4-${version}.tar.gz"
# fallback for when the current version is moved to the old folder
"https://ftp.regressive.org/snobol4/old/snobol4-${version}.tar.gz"
];
hash = "sha256-v9UwcdaSg3dvWydk94ZdNUuJ03JWmFShiHjln1c4jtI=";
};
outputs = [
"out"
"man"
"doc"
];
# gzip used by Makefile to compress man pages
nativeBuildInputs = [
gnum4
gzip
];
# enable all features (undocumented, based on manual review of configure script)
buildInputs = [
bzip2
libffi
openssl
readline
sqlite
tcl
xz
zlib
]
# ndbm compat library
++ lib.optional stdenv.hostPlatform.isLinux gdbm;
configureFlags = lib.optional (tcl != null) "--with-tcl=${tcl}/lib/tclConfig.sh";
# INSTALL says "parallel make will fail"
enableParallelBuilding = false;
patches = [ ./fix-paths.patch ];
# configure does not support --sbindir and the likes (as introduced by multiple-outputs.sh)
# so man, doc outputs must be handled manually
preConfigurePhases = [ "prePreConfigurePhase" ];
prePreConfigurePhase = ''
preConfigureHooks="''${preConfigureHooks//_multioutConfig/}"
prependToVar configureFlags --mandir="$man"/share/man
'';
meta = with lib; {
description = "Macro Implementation of SNOBOL4 in C";
longDescription = ''
An open source port of Macro SNOBOL4 (The original Bell Telephone Labs implementation, written in SIL macros) by Phil Budne.
Supports full SNOBOL4 language plus SPITBOL, [Blocks](https://www.regressive.org/snobol4/blocks/) and other extensions.
'';
homepage = "https://www.regressive.org/snobol4/csnobol4/";
license = licenses.bsd2;
platforms = platforms.all;
maintainers = with maintainers; [ xworld21 ];
};
}

View File

@@ -0,0 +1,74 @@
{
stdenv,
lib,
fetchFromGitLab,
python3,
meson,
ninja,
cmake,
vala,
gettext,
desktop-file-utils,
appstream-glib,
glib,
pkg-config,
libadwaita,
nix-update-script,
gtksourceview5,
wrapGAppsHook4,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snoop";
version = "0.4.2";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "philippun1";
repo = "snoop";
tag = finalAttrs.version;
hash = "sha256-M+wV6WYPtTbKXgBCOD/qN3LYAbpucwSAuKZQBVUjZo8=";
};
patchPhase = ''
runHook prePatch
substituteInPlace build-aux/meson/postinstall.py \
--replace-fail "/usr/bin/env python3" "${lib.getExe python3}"
sed -i '/gtk-update-icon-cache/d' build-aux/meson/postinstall.py
sed -i '/update-desktop-database/d' build-aux/meson/postinstall.py
runHook postPatch
'';
nativeBuildInputs = [
meson
ninja
cmake
gettext
vala
desktop-file-utils
appstream-glib
pkg-config
wrapGAppsHook4
];
buildInputs = [
glib
libadwaita
gtksourceview5
];
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://gitlab.gnome.org/philippun1/snoop";
changelog = "https://gitlab.gnome.org/philippun1/snoop/-/releases/${finalAttrs.version}";
description = "Search through file contents in a given folder";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
license = lib.licenses.gpl3Plus;
mainProgram = "snoop";
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,27 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "snooze";
version = "0.5";
src = fetchFromGitHub {
owner = "leahneukirchen";
repo = "snooze";
rev = "v${version}";
sha256 = "sha256-K77axli/mapUr3yxpmUfFq4iWwgRmEVUlP6+/0Iezwo=";
};
makeFlags = [
"DESTDIR=$(out)"
"PREFIX=/"
];
meta = with lib; {
description = "Tool for waiting until a particular time and then running a command";
maintainers = with maintainers; [ kaction ];
license = licenses.cc0;
platforms = platforms.unix;
mainProgram = "snooze";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
version = "0.3.1";
pname = "snore";
src = fetchFromGitHub {
owner = "clamiax";
repo = "snore";
tag = version;
hash = "sha256-bKPGSePzp4XEZFY0QQr37fm3R1v3hLD6FeySFd7zNJc=";
};
makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with lib; {
description = "'sleep' with feedback";
homepage = "https://github.com/clamiax/snore";
license = licenses.mit;
maintainers = with maintainers; [ cafkafk ];
platforms = platforms.unix;
mainProgram = "snore";
};
}

View File

@@ -0,0 +1,47 @@
From a4dd3bf78fc8d4c22b40ddb4e91f525012703a5a Mon Sep 17 00:00:00 2001
From: Brian McGillion <bmg.avoin@gmail.com>
Date: Mon, 10 Feb 2025 23:31:47 +0400
Subject: [PATCH] cmake: fix pkg-config path for libdir
on systems that prefer absolute paths there is a mixing and matching of
the relative and absolute paths that can result in the below creation of
libdir having the prefix and the full path appended to it.
** added to highlight
``prefix=/nix/store/3npvhj5wfwhc0q42qwiinj64bzfb1vvz-snort-3.6.3.0
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
**libdir=${prefix}//nix/store/3npvhj5wfwhc0q42qwiinj64bzfb1vvz-snort-3.6.3.0/lib**
includedir=${prefix}/include
datarootdir=${prefix}/share
datadir=${datarootdir}
mandir=${datarootdir}/man
infodir=${datarootdir}/info
``
In order to preserve backwards compatibility we will use the cmake
fullpath option ${CMAKE_INSTALL_FULL_LIBDIR} in place of
${prefix}/${CMAKE_INSTALL_LIBDIR} which will support both contexts.
Signed-off-by: Brian McGillion <bmg.avoin@gmail.com>
---
cmake/create_pkg_config.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/create_pkg_config.cmake b/cmake/create_pkg_config.cmake
index 300350cbd..4ce8b16e6 100644
--- a/cmake/create_pkg_config.cmake
+++ b/cmake/create_pkg_config.cmake
@@ -5,7 +5,7 @@
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "\${prefix}")
set(bindir "\${exec_prefix}/bin")
-set(libdir "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
+set(libdir "\${CMAKE_INSTALL_FULL_LIBDIR}")
set(includedir "\${prefix}/include")
set(datarootdir "\${prefix}/share")
set(datadir "\${datarootdir}")
--
2.47.2

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
libdaq,
libdnet,
flex,
hwloc,
luajit,
openssl,
libpcap,
pcre2,
pkg-config,
zlib,
xz,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snort";
version = "3.9.6.0";
src = fetchFromGitHub {
owner = "snort3";
repo = "snort3";
tag = finalAttrs.version;
hash = "sha256-YZCS2w4T9XskydnC4C2EMies9cUklvL56Umdw9EogLo=";
};
nativeBuildInputs = [
libdaq
pkg-config
cmake
];
buildInputs = [
libdaq
libpcap
stdenv.cc.cc # libstdc++
libdnet
flex
hwloc
luajit
openssl
libpcap
pcre2
zlib
xz
];
# Patch that is tracking upstream PR https://github.com/snort3/snort3/pull/399
patches = [ ./0001-cmake-fix-pkg-config-path-for-libdir.patch ];
enableParallelBuilding = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Network intrusion prevention and detection system (IDS/IPS)";
homepage = "https://www.snort.org";
maintainers = with lib.maintainers; [
aycanirican
brianmcgillion
];
changelog = "https://github.com/snort3/snort3/blob/${finalAttrs.src.rev}/ChangeLog.md";
license = lib.licenses.gpl2;
platforms = with lib.platforms; linux;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "snow";
version = "20130616";
src = fetchurl {
url = "https://web.archive.org/web/20200304125913if_/http://darkside.com.au/snow/snow-${version}.tar.gz";
sha256 = "0r9q45y55z4i0askkxmxrx0jr1620ypd870vz0hx2a6n9skimdy0";
};
preBuild = ''
makeFlagsArray+=(CFLAGS="-O2 -std=c89")
'';
installPhase = ''
install -Dm755 snow -t $out/bin
'';
meta = with lib; {
description = "Conceal messages in ASCII text by appending whitespace to the end of lines";
mainProgram = "snow";
homepage = "http://www.darkside.com.au/snow/";
license = licenses.asl20;
maintainers = with maintainers; [ siraben ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitLab,
gtk-engine-murrine,
}:
stdenv.mkDerivation {
pname = "snowblind";
version = "2020-06-07";
src = fetchFromGitLab {
domain = "www.opencode.net";
owner = "ju1464";
repo = "snowblind";
rev = "88d626b204e19d1730836289a1c0d83efcf247d0";
sha256 = "0admiqwdc0rvl8zxs0b2qyvsi8im7lrpsygm8ky8ymyf7alkw0gd";
};
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
installPhase = ''
mkdir -p $out/share/themes
cp -a Snowblind* $out/share/themes
rm $out/share/themes/*/{COPYING,CREDITS}
'';
meta = with lib; {
description = "Smooth blue theme based on Materia Design";
homepage = "https://www.opencode.net/ju1464/Snowblind";
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "snowcat";
version = "0.1.3";
src = fetchFromGitHub {
owner = "praetorian-inc";
repo = "snowcat";
rev = "v${version}";
sha256 = "sha256-EulQYGOMIh952e4Xp13hT/HMW3qP1QXYtt5PEej1VTY=";
};
vendorHash = "sha256-D6ipwGMxT0B3uYUzg6Oo2TYnsOVBY0mYO5lC7vtVPc0=";
ldflags = [
"-s"
"-w"
];
meta = {
homepage = "https://github.com/praetorian-inc/snowcat";
changelog = "https://github.com/praetorian-inc/snowcat/releases/tag/v${version}";
description = "Tool to audit the istio service mesh";
mainProgram = "snowcat";
longDescription = ''
Snowcat gathers and analyzes the configuration of an Istio cluster and
audits it for potential violations of security best practices.
There are two main modes of operation for Snowcat. With no positional
argument, Snowcat will assume it is running inside of a cluster enabled
with Istio, and begin to enumerate the required data. Optionally, you can
point snowcat at a directory containing Kubernets YAML files.
'';
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jk ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "snowcrash";
version = "0-unstable-2022-08-15";
src = fetchFromGitHub {
owner = "redcode-labs";
repo = "SNOWCRASH";
rev = "32e62f9ff7d3dda9fac8acfc56176f1f2a70d066";
hash = "sha256-mURF/VUqygd5bLJdmbwnZq003IXJKn+k8HtS+CxoQJQ=";
};
vendorHash = "sha256-WTDE+MYL8CjeNvGHRNiMgBFrydDJWIcG8TYvbQTH/6o=";
subPackages = [ "." ];
postFixup = lib.optionals (!stdenv.hostPlatform.isDarwin) ''
mv $out/bin/SNOWCRASH $out/bin/${pname}
'';
meta = with lib; {
description = "Polyglot payload generator";
homepage = "https://github.com/redcode-labs/SNOWCRASH";
license = with licenses; [ mit ];
maintainers = with maintainers; [ fab ];
teams = [ teams.redcodelabs ];
mainProgram = "SNOWCRASH";
};
}

View File

@@ -0,0 +1,122 @@
{
lib,
python3Packages,
fetchFromGitHub,
installShellFiles,
stdenv,
}:
python3Packages.buildPythonApplication rec {
pname = "snowflake-cli";
version = "3.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "snowflakedb";
repo = "snowflake-cli";
tag = "v${version}";
hash = "sha256-dJc5q3vE1G6oJq9V4JSPaSyODxKDyhprIwBo39Nu/bA=";
};
build-system = with python3Packages; [
hatch-vcs
hatchling
pip
];
nativeBuildInputs = [ installShellFiles ];
dependencies = with python3Packages; [
id
jinja2
pluggy
pyyaml
rich
requests
requirements-parser
setuptools
tomlkit
typer
urllib3
gitpython
pydantic
prompt-toolkit
snowflake-core
snowflake-connector-python
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
syrupy
coverage
pytest-randomly
pytest-factoryboy
pytest-xdist
pytest-httpserver
];
pytestFlags = [
"--snapshot-warn-unused"
];
disabledTests = [
"integration"
"spcs"
"loaded_modules"
"integration_experimental"
"test_snow_typer_help_sanitization" # Snapshot needs update?
"test_help_message" # Snapshot needs update?
"test_sql_help_if_no_query_file_or_stdin" # Snapshot needs update?
"test_multiple_streamlit_raise_error_if_multiple_entities" # Snapshot needs update?
"test_replace_and_not_exists_cannot_be_used_together" # Snapshot needs update?
"test_format" # Snapshot needs update?
"test_executing_command_sends_telemetry_usage_data" # Fails on mocked version
"test_internal_application_data_is_sent_if_feature_flag_is_set"
"test_if_bundling_dependencies_resolves_requirements" # impure?
"test_silent_output_help" # Snapshot needs update? Diff between received and snapshot is the word 'TABLE' moving down a line
"test_new_connection_can_be_added_as_default" # Snapshot needs update? Diff between received and snapshot is an empty line
];
disabledTestPaths = [
"tests/app/test_version_check.py"
"tests/nativeapp/test_sf_sql_facade.py"
];
pythonRelaxDeps = true;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
# Looks like the completion generation has some sort of a race
# Occasionally one of the completion generations would fail with
#
# An unexpected exception occurred. Use --debug option to see the traceback. Exception message:
# [Errno 17] File exists: '/build/tmp.W654FVhCPT/.config/snowflake/logs'
#
# This creates a fake config that prevents logging in the build sandbox.
export HOME=$(mktemp -d)
mkdir -p $HOME/.config/snowflake
cat <<EOF > $HOME/.config/snowflake/config.toml
[cli.logs]
save_logs = false
EOF
# snowcli checks the config permissions upon launch and exits with an error code if it's not 0600.
chmod 0600 $HOME/.config/snowflake/config.toml
# Typer tries to guess the current shell by default
export _TYPER_COMPLETE_TEST_DISABLE_SHELL_DETECTION=1
installShellCompletion --cmd snow \
--bash <($out/bin/snow --show-completion bash) \
--fish <($out/bin/snow --show-completion fish) \
--zsh <($out/bin/snow --show-completion zsh)
'';
meta = {
changelog = "https://github.com/snowflakedb/snowflake-cli/blob/main/RELEASE-NOTES.md";
homepage = "https://docs.snowflake.com/en/developer-guide/snowflake-cli-v2/index";
description = "Command-line tool explicitly designed for developer-centric workloads in addition to SQL operations";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ vtimofeenko ];
mainProgram = "snow";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitLab,
}:
buildGoModule rec {
pname = "snowflake";
version = "2.11.0";
src = fetchFromGitLab {
domain = "gitlab.torproject.org";
group = "tpo";
owner = "anti-censorship/pluggable-transports";
repo = "snowflake";
rev = "v${version}";
sha256 = "sha256-VfKiY5XCUnhsWoSfMeYQ5rxxXmAtWzD94o4EvhDCwDM=";
};
vendorHash = "sha256-vopRE4B4WhncUdBfmBTzRbZzCU20vsHoNCYcPG4BGc0=";
meta = {
description = "System to defeat internet censorship";
homepage = "https://snowflake.torproject.org/";
changelog = "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/raw/v${version}/ChangeLog";
maintainers = with lib.maintainers; [
bbjubjub
yayayayaka
];
license = lib.licenses.bsd3;
};
}

View File

@@ -0,0 +1,36 @@
{
python3Packages,
lib,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "snowmachine";
version = "2.0.2";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-GhCfiMPEYa9EGCyVDncqKtLKpSN0SwIQ0XnmGEXBQ5I=";
};
propagatedBuildInputs = with python3Packages; [
click
colorama
hatchling
];
doCheck = false;
pythonImportsCheck = [ "snowmachine" ];
meta = with lib; {
description = "Python script that will make your terminal snow";
homepage = "https://github.com/sontek/snowmachine";
mainProgram = "snowmachine";
license = with licenses; [ bsd3 ];
maintainers = with maintainers; [
djanatyn
sontek
];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchurl,
rpmextract,
patchelf,
makeWrapper,
openssl,
libxcrypt-legacy,
}:
stdenv.mkDerivation rec {
pname = "snowsql";
version = "1.3.3";
src = fetchurl {
url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${lib.versions.majorMinor version}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm";
sha256 = "sha256-BedOcd3ZllzMSZ6hjs1BG0o9TEg3aJKtLzutOE3nI1s=";
};
nativeBuildInputs = [
rpmextract
makeWrapper
];
libPath = lib.makeLibraryPath [
openssl
libxcrypt-legacy
];
buildCommand = ''
mkdir -p $out/bin/
cd $out
rpmextract $src
rm -R usr/bin
mv usr/* $out
rmdir usr
${patchelf}/bin/patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
lib64/snowflake/snowsql/snowsql
makeWrapper $out/lib64/snowflake/snowsql/snowsql $out/bin/snowsql \
--set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/lib64/snowflake/snowsql \
'';
meta = with lib; {
description = "Command line client for the Snowflake database";
homepage = "https://www.snowflake.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ andehen ];
platforms = [ "x86_64-linux" ];
mainProgram = "snowsql";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchurl,
jre,
unzip,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "snpeff";
version = "4.3t";
src = fetchurl {
url = "mirror://sourceforge/project/snpeff/snpEff_v${
builtins.replaceStrings [ "." ] [ "_" ] version
}_core.zip";
sha256 = "0i12mv93bfv8xjwc3rs2x73d6hkvi7kgbbbx3ry984l3ly4p6nnm";
};
nativeBuildInputs = [
makeWrapper
unzip
];
buildInputs = [ jre ];
sourceRoot = "snpEff";
installPhase = ''
mkdir -p $out/libexec/snpeff
cp *.jar *.config $out/libexec/snpeff
mkdir -p $out/bin
makeWrapper ${jre}/bin/java $out/bin/snpeff --add-flags "-jar $out/libexec/snpeff/snpEff.jar"
makeWrapper ${jre}/bin/java $out/bin/snpsift --add-flags "-jar $out/libexec/snpeff/SnpSift.jar"
# camelCase is the default
ln -s $out/bin/snpeff $out/bin/snpEff
ln -s $out/bin/snpsift $out/bin/snpSift
'';
meta = with lib; {
description = "Genetic variant annotation and effect prediction toolbox";
license = licenses.lgpl3;
homepage = "https://snpeff.sourceforge.net/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
maintainers = with maintainers; [ jbedo ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "snpguest";
version = "0.9.2";
src = fetchFromGitHub {
owner = "virtee";
repo = "snpguest";
tag = "v${version}";
hash = "sha256-pivuNPiH6c3krMKwoDjwodJBaMSvOYvYoTT+Ll/yOIA=";
};
cargoHash = "sha256-hXoMAUqv6g3Am6fbr2r8NX33TbFf8lPYSG1X0pFth/8=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
env.OPENSSL_NO_VENDOR = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "CLI tool for interacting with SEV-SNP guest environment";
homepage = "https://github.com/virtee/snpguest";
changelog = "https://github.com/virtee/snpguest/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ katexochen ];
mainProgram = "snpguest";
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
rustPlatform,
fetchFromGitHub,
curl,
pkg-config,
openssl,
zlib,
asciidoctor,
nix-update-script,
findutils,
installShellFiles,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "snphost";
version = "0.6.1";
src = fetchFromGitHub {
owner = "virtee";
repo = "snphost";
tag = "v${version}";
hash = "sha256-FvHawwoIqCiZ+Jm1itDWspaI+vDN6xDfeI11KoiO/DU=";
};
cargoHash = "sha256-ZOXOfFYingTBq5LfJqHRf6ZdvrdY1Zve/ZMnAE25kPM=";
nativeBuildInputs = [
asciidoctor
findutils
installShellFiles
pkg-config
];
buildInputs = [
curl
openssl
zlib
];
env.OPENSSL_NO_VENDOR = true;
# man page is placed in cargo's $OUT_DIR, which is randomized.
# Contacted upstream about it, for now use find to locate it.
postInstall = ''
installManPage $(find target/x86_64-unknown-linux-gnu/release/build -name "snphost.1")
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Administrative utility for SEV-SNP";
homepage = "https://github.com/virtee/snphost/";
changelog = "https://github.com/virtee/snphost/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ katexochen ];
mainProgram = "snphost";
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,66 @@
{
fetchFromGitHub,
glib,
gtk4,
kdePackages,
lib,
openssl,
pkg-config,
rustPlatform,
wrapGAppsHook4,
graphene,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "snx-rs";
version = "4.8.2";
src = fetchFromGitHub {
owner = "ancwrd1";
repo = "snx-rs";
tag = "v${version}";
hash = "sha256-wVc3iddqXTpsBZqEY+WWR1Taig4crhlQqw7jypm3ZMc=";
};
passthru.updateScript = nix-update-script { };
nativeBuildInputs = [
pkg-config
wrapGAppsHook4
];
buildInputs = [
glib
gtk4
kdePackages.kstatusnotifieritem
openssl
graphene
];
checkFlags = [
"--skip=platform::linux::net::tests::test_default_ip"
"--skip=platform::linux::tests::test_xfrm_check"
];
nativeInstallCheckInputs = [
versionCheckHook
];
cargoHash = "sha256-HRew3ldsgUbCh4eW1MSvoxLZobSJRjj7Eg0+XRbjFes=";
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/snx-rs";
versionCheckProgramArg = "--version";
meta = {
description = "Open source Linux client for Checkpoint VPN tunnels";
homepage = "https://github.com/ancwrd1/snx-rs";
license = lib.licenses.agpl3Plus;
changelog = "https://github.com/ancwrd1/snx-rs/blob/v${version}/CHANGELOG.md";
maintainers = with lib.maintainers; [
shavyn
];
mainProgram = "snx-rs";
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
testers,
snyk,
nodejs_20,
}:
let
version = "1.1299.1";
in
buildNpmPackage {
pname = "snyk";
inherit version;
src = fetchFromGitHub {
owner = "snyk";
repo = "cli";
tag = "v${version}";
hash = "sha256-DANNao3xNcoYWgyi5Dn5UTdeUNPMtkSC5f9VMIShqpQ=";
};
npmDepsHash = "sha256-WKVFg4rtm9UCWRbj1QCrDdQFpk0QZm3KKRUfOQfEJtg=";
postPatch = ''
substituteInPlace package.json \
--replace-fail '"version": "1.0.0-monorepo"' '"version": "${version}"'
'';
postInstall = ''
# Remove dangling symlinks created during installation (remove -delete to just see the files, or -print '%l\n' to see the target
find -L $out -type l -print -delete
'';
nodejs = nodejs_20;
npmBuildScript = "build:prod";
passthru.tests.version = testers.testVersion {
package = snyk;
};
meta = {
description = "Scans and monitors projects for security vulnerabilities";
homepage = "https://snyk.io";
changelog = "https://github.com/snyk/cli/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ momeemt ];
mainProgram = "snyk";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
snappy,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "snzip";
version = "1.0.5";
src = fetchFromGitHub {
owner = "kubo";
repo = "snzip";
rev = "v${finalAttrs.version}";
hash = "sha256-trxCGVNw2MugE7kmth62Qrp7JZcHeP1gdTZk32c3hFg=";
};
# We don't use a release tarball so we don't have a `./configure` script to
# run. That's why we generate it.
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
snappy
];
meta = with lib; {
description = "Compression/decompression tool based on snappy";
homepage = "https://github.com/kubo/snzip";
maintainers = with maintainers; [ doronbehar ];
license = licenses.bsd2;
platforms = platforms.linux;
};
})