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,47 @@
{
lib,
stdenv,
fetchFromGitHub,
fontconfig,
harfbuzz,
libX11,
libXft,
ncurses,
gd,
glib,
pkg-config,
}:
stdenv.mkDerivation {
pname = "st-snazzy";
version = "0.8.5-unstable-2024-09-06";
src = fetchFromGitHub {
owner = "siduck";
repo = "st";
rev = "a7582f96afdee6bf0793cd0d8f84b755fd6aabf6";
hash = "sha256-wohkmDsm26kqFGQKuY6NuBQsifT7nZNgrLqLFsU+Vog=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
fontconfig
harfbuzz
libX11
libXft
ncurses
gd
glib
];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
env.TERMINFO = "${placeholder "out"}/share/terminfo";
meta = {
homepage = "https://github.com/siduck/st";
description = "Snazzy terminal (suckless + beautiful)";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ pouya ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchzip,
pkg-config,
fontconfig,
freetype,
libX11,
libXft,
ncurses,
writeText,
config,
conf ? config.st.conf or null,
patches ? config.st.patches or [ ],
extraLibs ? config.st.extraLibs or [ ],
nixosTests,
# update script dependencies
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "st";
version = "0.9.3";
src = fetchzip {
url = "https://dl.suckless.org/st/st-${finalAttrs.version}.tar.gz";
hash = "sha256-Xr1JtaOMVgn+zsD39LFjP/0dkYkvaAXbEcYb3ptgYLA=";
};
outputs = [
"out"
"terminfo"
];
inherit patches;
configFile = lib.optionalString (conf != null) (writeText "config.def.h" conf);
postPatch =
lib.optionalString (conf != null) "cp ${finalAttrs.configFile} config.def.h"
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace config.mk --replace "-lrt" ""
'';
strictDeps = true;
makeFlags = [
"PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config"
];
nativeBuildInputs = [
pkg-config
ncurses
fontconfig
freetype
];
buildInputs = [
libX11
libXft
]
++ extraLibs;
preInstall = ''
export TERMINFO=$terminfo/share/terminfo
mkdir -p $TERMINFO $out/nix-support
echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
'';
installFlags = [ "PREFIX=$(out)" ];
passthru = {
tests.test = nixosTests.terminal-emulators.st;
updateScript = gitUpdater {
url = "git://git.suckless.org/st";
};
};
meta = {
homepage = "https://st.suckless.org/";
description = "Simple Terminal for X from Suckless.org Community";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ qusic ];
platforms = lib.platforms.unix;
mainProgram = "st";
};
})

View File

@@ -0,0 +1,57 @@
{
stdenv,
lib,
fetchFromGitHub,
autoreconfHook,
cxxtest,
}:
stdenv.mkDerivation {
pname = "sta";
version = "0-unstable-2021-11-30";
src = fetchFromGitHub {
owner = "simonccarter";
repo = "sta";
rev = "94559e3dfa97d415e3f37b1180b57c17c7222b4f";
sha256 = "sha256-AiygCfBze7J1Emy6mc27Dim34eLR7VId9wodUZapIL4=";
};
strictDeps = true;
nativeBuildInputs = [ autoreconfHook ];
doCheck = true;
nativeCheckInputs = [ cxxtest ];
checkInputs = [ cxxtest ];
checkPhase = ''
runHook preCheck
pushd test
cxxtestgen --error-printer --have-std -o tests.cpp sta_test_1.h sta_test_2.h
${stdenv.cc.targetPrefix}c++ -o tester tests.cpp
./tester
popd
runHook postCheck
'';
meta = with lib; {
description = "Simple statistics from the command line interface (CLI), fast";
longDescription = ''
This is a lightweight, fast tool for calculating basic descriptive
statistics from the command line. Inspired by
https://github.com/nferraz/st, this project differs in that it is written
in C++, allowing for faster computation of statistics given larger
non-trivial data sets.
'';
license = licenses.mit;
homepage = "https://github.com/simonccarter/sta";
maintainers = [ ];
platforms = platforms.all;
mainProgram = "sta";
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
glib,
expat,
libmicrohttpd,
}:
stdenv.mkDerivation {
pname = "stabber-unstable";
version = "2020-06-08";
src = fetchFromGitHub {
owner = "boothj5";
repo = "stabber";
rev = "3e5c2200715666aad403d0076e8ab584b329965e";
sha256 = "0042nbgagl4gcxa5fj7bikjdi1gbk0jwyqnzc5lswpb0l5y0i1ql";
};
postPatch = ''
# New toolchainsd like gcc-13 trigger warnings and fail the build.
substituteInPlace configure.ac --replace "-Werror" ""
'';
preAutoreconf = ''
mkdir m4
'';
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [
glib
expat
libmicrohttpd
];
meta = with lib; {
description = "Stubbed XMPP Server";
mainProgram = "stabber";
homepage = "https://github.com/profanity-im/stabber";
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = with maintainers; [ hschaeidt ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonPackage rec {
pname = "stac-validator";
version = "3.10.1";
pyproject = true;
disabled = python3Packages.pythonOlder "3.8";
src = fetchFromGitHub {
owner = "stac-utils";
repo = "stac-validator";
tag = "v${version}";
hash = "sha256-tqguaptVRo6k6QALOOOL8dysMGDZx07eRJoHG24JirQ=";
};
build-system = [ python3Packages.setuptools ];
pythonRelaxDeps = [
"click"
];
dependencies = with python3Packages; [
click
jsonschema
pyyaml
requests
];
pythonImportsCheck = [ "stac_validator" ];
meta = {
description = "Validator for the SpatioTemporal Asset Catalog (STAC) specification";
homepage = "https://github.com/stac-utils/stac-validator";
license = lib.licenses.asl20;
teams = [ lib.teams.geospatial ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "stackblur-go";
version = "1.1.0";
src = fetchFromGitHub {
owner = "esimov";
repo = "stackblur-go";
rev = "v${version}";
hash = "sha256-y1Fov81mholhz+bLRYl+G7jhzcsFS5TUjQ3SUntD8E0=";
};
vendorHash = null;
postInstall = ''
mv $out/bin/cmd $out/bin/stackblur
'';
ldflags = [
"-s"
"-w"
];
meta = {
description = "Fast, almost Gaussian Blur implementation in Go";
homepage = "https://github.com/esimov/stackblur-go";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sodiboo ];
mainProgram = "stackblur";
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
makeWrapper,
less,
xdg-utils,
testers,
stackit-cli,
}:
buildGoModule rec {
pname = "stackit-cli";
version = "0.43.0";
src = fetchFromGitHub {
owner = "stackitcloud";
repo = "stackit-cli";
rev = "v${version}";
hash = "sha256-HguX19WOiVKoMCYg85ODEzswCsSFvcRCfQnyCt0Tky4=";
};
vendorHash = "sha256-mXq96NELJS6ksadE/ImiN8LgYnmR1STQl1INQV+iKUI=";
subPackages = [ "." ];
env.CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
nativeBuildInputs = [
installShellFiles
makeWrapper
];
postInstall = ''
mv $out/bin/{stackit-cli,stackit} # rename the binary
installShellCompletion --cmd stackit \
--bash <($out/bin/stackit completion bash) \
--zsh <($out/bin/stackit completion zsh) \
--fish <($out/bin/stackit completion fish)
# Ensure that all 3 completion scripts exist AND have content (should be kept for regression testing)
[ $(find $out/share -not -empty -type f | wc -l) -eq 3 ]
'';
postFixup = ''
wrapProgram $out/bin/stackit \
--suffix PATH : ${
lib.makeBinPath [
less
xdg-utils
]
}
'';
nativeCheckInputs = [ less ];
passthru.tests = {
version = testers.testVersion {
package = stackit-cli;
command = "stackit --version";
};
};
meta = {
description = "CLI to manage STACKIT cloud services";
homepage = "https://github.com/stackitcloud/stackit-cli";
changelog = "https://github.com/stackitcloud/stackit-cli/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ DerRockWolf ];
mainProgram = "stackit";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
fetchFromGitHub,
buildGoModule,
testers,
stackql,
}:
buildGoModule rec {
pname = "stackql";
version = "0.8.175";
src = fetchFromGitHub {
owner = "stackql";
repo = "stackql";
rev = "v${version}";
hash = "sha256-JA9vTmjNIXhvcdH9BPmtSD3W3VkytG+dYOtOJ+hFnsQ=";
};
vendorHash = "sha256-lACvTdzOZ5AnPqaw+uGMbO3HnjKU/dSVATgmrdYpWNE=";
ldflags = [
"-s"
"-w"
"-X github.com/stackql/stackql/internal/stackql/cmd.BuildMajorVersion=${builtins.elemAt (lib.splitVersion version) 0}"
"-X github.com/stackql/stackql/internal/stackql/cmd.BuildMinorVersion=${builtins.elemAt (lib.splitVersion version) 1}"
"-X github.com/stackql/stackql/internal/stackql/cmd.BuildPatchVersion=${builtins.elemAt (lib.splitVersion version) 2}"
"-X github.com/stackql/stackql/internal/stackql/cmd.BuildDate=2024-05-15T07:51:52Z" # date of commit hash
"-X stackql/internal/stackql/planbuilder.PlanCacheEnabled=true"
];
__darwinAllowLocalNetworking = true;
checkFlags = [ "--tags json1,sqleanal" ];
passthru.tests.version = testers.testVersion {
package = stackql;
version = "v${version}";
};
meta = {
homepage = "https://github.com/stackql/stackql";
description = "Deploy, manage and query cloud resources and interact with APIs using SQL";
mainProgram = "stackql";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jonochang ];
};
}

View File

@@ -0,0 +1,25 @@
{
lib,
stdenv,
fetchurl,
zlib,
}:
stdenv.mkDerivation rec {
pname = "stacks";
version = "2.68";
src = fetchurl {
url = "http://catchenlab.life.illinois.edu/stacks/source/${pname}-${version}.tar.gz";
sha256 = "sha256-ncUeo1bWDrRVewstGohUqvrkkq7Yf5dOAknMCapedlA=";
};
buildInputs = [ zlib ];
meta = {
description = "Software pipeline for building loci from short-read sequences";
homepage = "http://catchenlab.life.illinois.edu/stacks/";
maintainers = [ lib.maintainers.bzizou ];
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromSourcehut,
wayland,
wayland-scanner,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stacktile";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~leon_plickat";
repo = "stacktile";
rev = "v${finalAttrs.version}";
hash = "sha256-IOFxgYMjh92jx2CPfBRZDL/1ucgfHtUyAL5rS2EG+Gc=";
};
outputs = [
"out"
"man"
];
nativeBuildInputs = [
wayland-scanner
];
buildInputs = [
wayland
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"MANDIR=${placeholder "man"}/share/man"
];
strictDeps = true;
meta = {
homepage = "https://sr.ht/~leon_plickat/stacktile/";
description = "Layout generator for the river Wayland compositor";
license = with lib.licenses; [ gpl3Plus ];
mainProgram = "stacktile";
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
fetchFromGitHub,
python3,
libarchive,
}:
python3.pkgs.buildPythonApplication rec {
pname = "stacs";
version = "0.5.1";
pyproject = true;
src = fetchFromGitHub {
owner = "stacscan";
repo = "stacs";
tag = version;
hash = "sha256-u0yFzId5RAOnJfTDPRUc8E624zIWyCDe3/WlrJ5iuxA=";
};
# remove upstream workaround for darwin
postPatch = ''
substituteInPlace setup.py \
--replace-fail 'if platform.system() == "Darwin":' "if False:"
'';
buildInputs = [ libarchive ];
build-system = with python3.pkgs; [
pybind11
setuptools
setuptools-scm
];
dependencies = with python3.pkgs; [
click
colorama
pydantic_1
yara-python
zstandard
];
pythonRelaxDeps = [ "yara-python" ];
nativeCheckInputs = with python3.pkgs; [
pytest-cov-stub
pytestCheckHook
];
pythonImportsCheck = [
"stacs"
];
meta = {
description = "Static token and credential scanner";
mainProgram = "stacs";
homepage = "https://github.com/stacscan/stacs";
license = with lib.licenses; [ bsd3 ];
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
libgit2,
fetchgit,
}:
stdenv.mkDerivation rec {
pname = "stagit";
version = "1.2";
src = fetchgit {
url = "git://git.codemadness.org/stagit";
rev = version;
sha256 = "sha256-mVYR8THGGfaTsx3aaSbQBxExRo87K47SD+PU5cZ8z58=";
};
makeFlags = [ "PREFIX=$(out)" ];
buildInputs = [ libgit2 ];
meta = with lib; {
description = "Git static site generator";
homepage = "https://git.codemadness.org/stagit/file/README.html";
license = licenses.mit;
platforms = platforms.all;
maintainers = with maintainers; [
jb55
sikmir
];
};
}

View File

@@ -0,0 +1,55 @@
{
fetchurl,
lib,
stdenv,
ncompress,
libX11,
}:
stdenv.mkDerivation rec {
pname = "stalin";
version = "0.11";
src = fetchurl {
url = "ftp://ftp.ecn.purdue.edu/qobi/stalin.tar.Z";
sha256 = "0lz8riccpigdixwf6dswwva6s4kxaz3dzxhkqhcxgwmffy30vw8s";
};
buildInputs = [
ncompress
libX11
];
buildPhase = "./build ";
installPhase = ''
mkdir -p "$out/bin"
cp stalin "$out/bin"
mkdir -p "$out/man/man1"
cp stalin.1 "$out/man/man1"
mkdir -p "$out/share/emacs/site-lisp"
cp stalin.el "$out/share/emacs/site-lisp"
mkdir -p "$out/doc/stalin-${version}"
cp README "$out/doc/stalin-${version}"
mkdir -p "$out/share/stalin-${version}/include"
cp "include/"* "$out/share/stalin-${version}/include"
substituteInPlace "$out/bin/stalin" \
--replace "$PWD/include/stalin" "$out/share/stalin-${version}/include/stalin"
substituteInPlace "$out/bin/stalin" \
--replace "$PWD/include" "$out/share/stalin-${version}/include"
'';
meta = {
homepage = "http://www.ece.purdue.edu/~qobi/software.html";
license = lib.licenses.gpl2Plus;
description = "Optimizing Scheme compiler";
maintainers = [ ];
platforms = [ "i686-linux" ]; # doesn't want to work on 64-bit platforms
};
}

View File

@@ -0,0 +1,53 @@
{
autoreconfHook,
docbook_xml_dtd_44,
docbook-xsl-ns,
fetchFromGitHub,
lib,
libX11,
libXpm,
libxslt,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "stalonetray";
version = "0.8.5";
src = fetchFromGitHub {
owner = "kolbusa";
repo = "stalonetray";
rev = "v${version}";
sha256 = "sha256-/55oP6xA1LeLawOBkhh9acaDcObO4L4ojcy7e3vwnBw=";
};
preConfigure =
let
db_root = "${docbook-xsl-ns}/share/xml/docbook-xsl-ns";
ac_str = "AC_SUBST(DOCBOOK_ROOT)";
ac_str_sub = "DOCBOOK_ROOT=${db_root}; ${ac_str}";
in
''
substituteInPlace configure.ac --replace '${ac_str}' '${ac_str_sub}'
'';
nativeBuildInputs = [
autoreconfHook
docbook-xsl-ns
docbook_xml_dtd_44
libX11
libXpm
libxslt
];
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Stand alone tray";
homepage = "https://github.com/kolbusa/stalonetray";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = with maintainers; [ raskin ];
mainProgram = "stalonetray";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
rustPlatform,
versionCheckHook,
stalwart-mail,
}:
rustPlatform.buildRustPackage {
inherit (stalwart-mail) src version cargoDeps;
pname = "stalwart-cli";
cargoBuildFlags = [
"--package"
"stalwart-cli"
];
cargoTestFlags = [
"--package"
"stalwart-cli"
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
# Prerelease reports incorrect version
dontVersionCheck = true;
meta = {
inherit (stalwart-mail.meta) license homepage changelog;
description = "Stalwart Mail Server CLI";
mainProgram = "stalwart-cli";
maintainers = with lib.maintainers; [
giomf
];
};
}

View File

@@ -0,0 +1,203 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
protobuf,
bzip2,
openssl,
sqlite,
foundationdb,
zstd,
stdenv,
nix-update-script,
nixosTests,
rocksdb,
callPackage,
withFoundationdb ? false,
stalwartEnterprise ? false,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "stalwart-mail" + (lib.optionalString stalwartEnterprise "-enterprise");
version = "0.13.4";
src = fetchFromGitHub {
owner = "stalwartlabs";
repo = "stalwart";
tag = "v${finalAttrs.version}";
hash = "sha256-1WKmSgDZ3c6+fFKH9+kgrxFYthKQqE1455bFHlVCGhU=";
};
cargoHash = "sha256-i6AvyX4RObB9aa+TYvsOW8i9WTcYx8ddP/Jmyr8PWMY=";
nativeBuildInputs = [
pkg-config
protobuf
rustPlatform.bindgenHook
];
buildInputs = [
bzip2
openssl
sqlite
zstd
]
++ lib.optionals (stdenv.hostPlatform.isLinux && withFoundationdb) [ foundationdb ];
# Issue: https://github.com/stalwartlabs/stalwart/issues/1104
buildNoDefaultFeatures = true;
buildFeatures = [
"sqlite"
"postgres"
"mysql"
"rocks"
"elastic"
"s3"
"redis"
]
++ lib.optionals withFoundationdb [ "foundationdb" ]
++ lib.optionals stalwartEnterprise [ "enterprise" ];
env = {
OPENSSL_NO_VENDOR = true;
ZSTD_SYS_USE_PKG_CONFIG = true;
ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
ROCKSDB_LIB_DIR = "${rocksdb}/lib";
}
//
lib.optionalAttrs
(stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isArmv7))
{
JEMALLOC_SYS_WITH_LG_PAGE = 16;
};
postInstall = ''
mkdir -p $out/etc/stalwart
mkdir -p $out/lib/systemd/system
substitute resources/systemd/stalwart-mail.service $out/lib/systemd/system/stalwart-mail.service \
--replace "__PATH__" "$out"
'';
checkFlags = lib.forEach [
# Require running mysql, postgresql daemon
"directory::imap::imap_directory"
"directory::internal::internal_directory"
"directory::ldap::ldap_directory"
"directory::sql::sql_directory"
"directory::oidc::oidc_directory"
"store::blob::blob_tests"
"store::lookup::lookup_tests"
"smtp::lookup::sql::lookup_sql"
# thread 'directory::smtp::lmtp_directory' panicked at tests/src/store/mod.rs:122:44:
# called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
"directory::smtp::lmtp_directory"
# thread 'imap::imap_tests' panicked at tests/src/imap/mod.rs:436:14:
# Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
"imap::imap_tests"
# thread 'jmap::jmap_tests' panicked at tests/src/jmap/mod.rs:303:14:
# Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
"jmap::jmap_tests"
# Failed to read system DNS config: io error: No such file or directory (os error 2)
"smtp::inbound::data::data"
# Expected "X-My-Header: true" but got Received: from foobar.net (unknown [10.0.0.123])
"smtp::inbound::scripts::sieve_scripts"
# thread 'smtp::outbound::lmtp::lmtp_delivery' panicked at tests/src/smtp/session.rs:313:13:
# Expected "<invalid@domain.org> (failed to lookup" but got From: "Mail Delivery Subsystem" <MAILER-DAEMON@localhost>
"smtp::outbound::lmtp::lmtp_delivery"
# thread 'smtp::outbound::extensions::extensions' panicked at tests/src/smtp/inbound/mod.rs:45:23:
# No queue event received.
"smtp::outbound::extensions::extensions"
# panicked at tests/src/smtp/outbound/smtp.rs:173:5:
"smtp::outbound::smtp::smtp_delivery"
# panicked at tests/src/smtp/outbound/lmtp.rs
"smtp::outbound::lmtp::lmtp_delivery"
# thread 'smtp::queue::retry::queue_retry' panicked at tests/src/smtp/queue/retry.rs:119:5:
# assertion `left == right` failed
# left: [1, 2, 2]
# right: [1, 2, 3]
"smtp::queue::retry::queue_retry"
# thread 'smtp::queue::virtualq::virtual_queue' panicked at /build/source/crates/store/src/dispatch/store.rs:548:14:
# called `Result::unwrap()` on an `Err` value: Error(Event { inner: Store(MysqlError), keys: [(Reason, String("Input/output error: Input/output error: Connection refused (os error 111)")), (CausedBy, String("crates/store/src/dispatch/store.rs:301"))] })
"smtp::queue::virtualq::virtual_queue"
# Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
"store::store_tests"
# Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
"cluster::cluster_tests"
# Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
"webdav::webdav_tests"
# thread 'config::parser::tests::toml_parse' panicked at crates/utils/src/config/parser.rs:463:58:
# called `Result::unwrap()` on an `Err` value: "Expected ['\\n'] but found '!' in value at line 70."
"config::parser::tests::toml_parse"
# error[E0432]: unresolved import `r2d2_sqlite`
# use of undeclared crate or module `r2d2_sqlite`
"backend::sqlite::pool::SqliteConnectionManager::with_init"
# thread 'smtp::reporting::analyze::report_analyze' panicked at tests/src/smtp/reporting/analyze.rs:88:5:
# assertion `left == right` failed
# left: 0
# right: 12
"smtp::reporting::analyze::report_analyze"
# thread 'smtp::inbound::dmarc::dmarc' panicked at tests/src/smtp/inbound/mod.rs:59:26:
# Expected empty queue but got Reload
"smtp::inbound::dmarc::dmarc"
# thread 'smtp::queue::concurrent::concurrent_queue' panicked at tests/src/smtp/inbound/mod.rs:65:9:
# assertion `left == right` failed
"smtp::queue::concurrent::concurrent_queue"
# Failed to read system DNS config: io error: No such file or directory (os error 2)
"smtp::inbound::auth::auth"
# Failed to read system DNS config: io error: No such file or directory (os error 2)
"smtp::inbound::antispam::antispam"
# Failed to read system DNS config: io error: No such file or directory (os error 2)
"smtp::inbound::vrfy::vrfy_expn"
# thread 'smtp::management::queue::manage_queue' panicked at tests/src/smtp/inbound/mod.rs:45:23:
# No queue event received.
# NOTE: Test unreliable on high load systems
"smtp::management::queue::manage_queue"
# thread 'responses::tests::parse_responses' panicked at crates/dav-proto/src/responses/mod.rs:671:17:
# assertion `left == right` failed: failed for 008.xml
# left: ElementEnd
# right: Bytes([...])
"responses::tests::parse_responses"
] (test: "--skip=${test}");
doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
# Allow network access during tests on Darwin/macOS
__darwinAllowLocalNetworking = true;
passthru = {
inherit rocksdb; # make used rocksdb version available (e.g., for backup scripts)
webadmin = callPackage ./webadmin.nix { };
spam-filter = callPackage ./spam-filter.nix { };
updateScript = nix-update-script { };
tests.stalwart-mail = nixosTests.stalwart-mail;
};
meta = {
description = "Secure & Modern All-in-One Mail Server (IMAP, JMAP, SMTP)";
homepage = "https://github.com/stalwartlabs/mail-server";
changelog = "https://github.com/stalwartlabs/mail-server/blob/main/CHANGELOG.md";
license = [
lib.licenses.agpl3Only
]
++ lib.optionals stalwartEnterprise [
{
fullName = "Stalwart Enterprise License 1.0 (SELv1) Agreement";
url = "https://github.com/stalwartlabs/mail-server/blob/main/LICENSES/LicenseRef-SEL.txt";
free = false;
redistributable = false;
}
];
mainProgram = "stalwart";
maintainers = with lib.maintainers; [
happysalada
onny
oddlama
pandapip1
norpol
];
};
})

View File

@@ -0,0 +1,43 @@
{
lib,
fetchFromGitHub,
stdenv,
stalwart-mail,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spam-filter";
version = "2.0.4";
src = fetchFromGitHub {
owner = "stalwartlabs";
repo = "spam-filter";
tag = "v${finalAttrs.version}";
hash = "sha256-unSRgmXE5T1QfE41E29BjJKpEAnMtYiAefcL2p7Cjak=";
};
buildPhase = ''
bash ./build.sh
'';
installPhase = ''
mkdir -p $out
cp spam-filter.toml $out/
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Secure & modern all-in-one mail server Stalwart (spam-filter module)";
homepage = "https://github.com/stalwartlabs/spam-filter";
changelog = "https://github.com/stalwartlabs/spam-filter/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = with lib.licenses; [
mit
asl20
];
inherit (stalwart-mail.meta) maintainers;
};
})

View File

@@ -0,0 +1,77 @@
{
lib,
rustPlatform,
stalwart-mail,
fetchFromGitHub,
trunk,
tailwindcss_3,
fetchNpmDeps,
nix-update-script,
nodejs,
npmHooks,
llvmPackages,
wasm-bindgen-cli_0_2_93,
binaryen,
zip,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "webadmin";
version = "0.1.32";
src = fetchFromGitHub {
owner = "stalwartlabs";
repo = "webadmin";
tag = "v${finalAttrs.version}";
hash = "sha256-HmQBMU7o0A20SY4tBw4SPVfHFfw8e0JsNQDNdZcex24=";
};
npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-npm-deps";
hash = "sha256-na1HEueX8w7kuDp8LEtJ0nD1Yv39cyk6sEMpS1zix2s=";
};
cargoHash = "sha256-a2+3uNNSLfb81QXjZfftbwpgjORPRSgC056U3FINP4o=";
postPatch = ''
# Using local tailwindcss for compilation
substituteInPlace Trunk.toml --replace-fail "npx tailwindcss" "tailwindcss"
'';
nativeBuildInputs = [
binaryen
llvmPackages.bintools-unwrapped
nodejs
npmHooks.npmConfigHook
tailwindcss_3
trunk
# needs to match with wasm-bindgen version in upstreams Cargo.lock
wasm-bindgen-cli_0_2_93
zip
];
NODE_PATH = "$npmDeps";
buildPhase = ''
trunk build --offline --frozen --release
'';
installPhase = ''
cd dist
mkdir -p $out
zip -r $out/webadmin.zip *
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Secure & modern all-in-one mail server Stalwart (webadmin module)";
homepage = "https://github.com/stalwartlabs/webadmin";
changelog = "https://github.com/stalwartlabs/webadmin/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.agpl3Only;
inherit (stalwart-mail.meta) maintainers;
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
ocamlPackages,
}:
ocamlPackages.buildDunePackage rec {
pname = "stanc";
version = "2.36.0";
minimalOCamlVersion = "4.12";
duneVersion = "3";
src = fetchFromGitHub {
owner = "stan-dev";
repo = "stanc3";
rev = "v${version}";
hash = "sha256-IrpHV00Fn3Nxail4Xgv/8ezclKpyVuQa1F34kF07wwA=";
};
nativeBuildInputs = with ocamlPackages; [ menhir ];
buildInputs = with ocamlPackages; [
core_unix
menhirLib
ppx_deriving
fmt
yojson
];
meta = with lib; {
homepage = "https://github.com/stan-dev/stanc3";
description = "Stan compiler and utilities";
license = licenses.bsd3;
maintainers = with maintainers; [ wegank ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,98 @@
{
lib,
stdenv,
fetchurl,
dpkg,
makeWrapper,
electron,
libsecret,
asar,
python3,
glib,
desktop-file-utils,
callPackage,
}:
let
srcjson = builtins.fromJSON (builtins.readFile ./src.json);
throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
in
stdenv.mkDerivation {
pname = "standardnotes";
src = fetchurl (srcjson.deb.${stdenv.hostPlatform.system} or throwSystem);
inherit (srcjson) version;
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [
makeWrapper
dpkg
desktop-file-utils
asar
];
installPhase =
let
libPath = lib.makeLibraryPath [
libsecret
glib
(lib.getLib stdenv.cc.cc)
];
in
''
runHook preInstall
mkdir -p $out/bin $out/share/standardnotes
cp -R usr/share/{applications,icons} $out/share
cp -R opt/Standard\ Notes/resources/app.asar $out/share/standardnotes/
cp -R opt/Standard\ Notes/resources/app.asar.unpacked $out/share/standardnotes/
rm $out/share/standardnotes/app.asar.unpacked/node_modules/cbor-extract/build/node_gyp_bins/python3
ln -s ${python3.interpreter} $out/share/standardnotes/app.asar.unpacked/node_modules/cbor-extract/build/node_gyp_bins/python3
${lib.optionalString stdenv.hostPlatform.isAarch64 ''
rm $out/share/standardnotes/app.asar.unpacked/node_modules/microtime/build/node_gyp_bins/python3
ln -s ${python3.interpreter} $out/share/standardnotes/app.asar.unpacked/node_modules/microtime/build/node_gyp_bins/python3
''}
asar e $out/share/standardnotes/app.asar asar-unpacked
find asar-unpacked -name '*.node' -exec patchelf \
--add-rpath "${libPath}" \
{} \;
asar p asar-unpacked $out/share/standardnotes/app.asar
makeWrapper ${electron}/bin/electron $out/bin/standardnotes \
--add-flags $out/share/standardnotes/app.asar
${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
--set-key Exec --set-value standardnotes usr/share/applications/standard-notes.desktop
runHook postInstall
'';
passthru.updateScript = callPackage ./update.nix { };
meta = with lib; {
description = "Simple and private notes app";
longDescription = ''
Standard Notes is a private notes app that features unmatched simplicity,
end-to-end encryption, powerful extensions, and open-source applications.
'';
homepage = "https://standardnotes.org";
license = licenses.agpl3Only;
maintainers = with maintainers; [
mgregoire
chuangzhu
squalus
];
sourceProvenance = [ sourceTypes.binaryNativeCode ];
platforms = builtins.attrNames srcjson.deb;
mainProgram = "standardnotes";
};
}

View File

@@ -0,0 +1,13 @@
{
"version": "3.195.13",
"deb": {
"x86_64-linux": {
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.195.13/standard-notes-3.195.13-linux-amd64.deb",
"hash": "sha512-z7tZkOvzYzEPhu3rz8PG7mWdEua1z2ToVoj6l2wmvZUx/nS6lQ3yIFhEvpnMyXRZ2qDn4ihnBT20fyZttvkjMQ=="
},
"aarch64-linux": {
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.195.13/standard-notes-3.195.13-linux-arm64.deb",
"hash": "sha512-c9p7aLCkcqdtx/X2vrmb5GCyc7JtR9O9GVwrkgGPJpZ0FdSR5zhX0nI9sJFHBIA/GuPuDYOM4fimyfpQzy0Nfw=="
}
}
}

View File

@@ -0,0 +1,72 @@
{
writeScript,
lib,
curl,
runtimeShell,
jq,
coreutils,
moreutils,
nix,
gnused,
}:
writeScript "update-standardnotes" ''
#!${runtimeShell}
PATH=${
lib.makeBinPath [
jq
curl
nix
coreutils
moreutils
gnused
]
}
set -euo pipefail
set -x
tmpDir=$(mktemp -d)
srcJson=pkgs/applications/editors/standardnotes/src.json
jsonPath="$tmpDir"/latest
oldVersion=$(jq -r .version < "$srcJson")
curl https://api.github.com/repos/standardnotes/app/releases/latest > "$jsonPath"
tagName=$(jq -r .tag_name < "$jsonPath")
if [[ ! "$tagName" =~ "desktop" ]]; then
echo "latest release '$tagName' not a desktop release"
exit 1
fi
newVersion=$(jq -r .tag_name < "$jsonPath" | sed s,@standardnotes/desktop@,,g)
if [[ "$oldVersion" == "$newVersion" ]]; then
echo "version did not change"
exit 0
fi
function getDownloadUrl() {
jq -r ".assets[] | select(.name==\"standard-notes-$newVersion-$1.deb\") | .browser_download_url" < "$jsonPath"
}
function setJsonKey() {
jq "$1 = \"$2\"" "$srcJson" | sponge "$srcJson"
}
function updatePlatform() {
nixPlatform="$1"
upstreamPlatform="$2"
url=$(getDownloadUrl "$upstreamPlatform")
hash=$(nix-prefetch-url "$url" --type sha512)
sriHash=$(nix --extra-experimental-features nix-command hash to-sri --type sha512 $hash)
setJsonKey .deb[\""$nixPlatform"\"].url "$url"
setJsonKey .deb[\""$nixPlatform"\"].hash "$sriHash"
}
updatePlatform x86_64-linux linux-amd64
updatePlatform aarch64-linux linux-arm64
setJsonKey .version "$newVersion"
''

View File

@@ -0,0 +1,34 @@
{
lib,
rustPlatform,
fetchCrate,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage rec {
pname = "star-history";
version = "1.0.31";
src = fetchCrate {
inherit pname version;
hash = "sha256-AxaJK39QkhTTATKh+lYzS3zxAlIElJUyOaUCi2pjXhQ=";
};
cargoHash = "sha256-sXqUbG6GlesC6NtM+xwzopuyswIezr8CLzidCx6fMQk=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
meta = with lib; {
description = "Command line program to generate a graph showing number of GitHub stars of a user, org or repo over time";
homepage = "https://github.com/dtolnay/star-history";
license = with licenses; [
asl20 # or
mit
];
maintainers = with maintainers; [ figsoda ];
mainProgram = "star-history";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
xxd,
zlib,
llvmPackages,
versionCheckHook,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "star";
version = "2.7.11b";
src = fetchFromGitHub {
repo = "STAR";
owner = "alexdobin";
rev = version;
sha256 = "sha256-4EoS9NOKUwfr6TDdjAqr4wGS9cqVX5GYptiOCQpmg9c=";
};
sourceRoot = "${src.name}/source";
postPatch = ''
substituteInPlace Makefile --replace-fail "-std=c++11" "-std=c++14"
'';
nativeBuildInputs = [ xxd ];
buildInputs = [ zlib ] ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ];
enableParallelBuilding = true;
makeFlags = lib.optionals stdenv.hostPlatform.isAarch64 [ "CXXFLAGS_SIMD=" ];
preBuild = lib.optionalString stdenv.isDarwin ''
export CXXFLAGS="$CXXFLAGS -DSHM_NORESERVE=0"
'';
buildFlags = [
"STAR"
"STARlong"
];
installPhase = ''
runHook preInstall
install -D STAR STARlong -t $out/bin
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/STAR";
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Spliced Transcripts Alignment to a Reference";
longDescription = ''
STAR (Spliced Transcripts Alignment to a Reference) is a fast RNA-seq
read mapper, with support for splice-junction and fusion read detection.
'';
mainProgram = "STAR";
homepage = "https://github.com/alexdobin/STAR";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = [ maintainers.arcadio ];
};
}

View File

@@ -0,0 +1,94 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "starboard";
version = "0.15.27";
__darwinAllowLocalNetworking = true; # for tests
src = fetchFromGitHub {
owner = "aquasecurity";
repo = "starboard";
tag = "v${finalAttrs.version}";
hash = "sha256-hp6mgJGcdJ2mm5pwo0/mCZ43VKnZtriySW+PcysgOAY=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
postFetch = ''
cd "$out"
git rev-parse HEAD > $out/COMMIT
# 0000-00-00T00:00:00Z
date -u -d "@$(git log -1 --pretty=%ct)" "+%Y-%m-%dT%H:%M:%SZ" > $out/SOURCE_DATE_EPOCH
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-6SqghCM2dwNyosZo0wfMMHlgrgY+Ts+7lIN7+qSp0GI=";
nativeBuildInputs = [ installShellFiles ];
subPackages = [ "cmd/starboard" ];
ldflags = [
"-s"
"-w"
"-X main.version=v${finalAttrs.version}"
];
# ldflags based on metadata from git and source
preBuild = ''
ldflags+=" -X main.commit=$(cat COMMIT)"
ldflags+=" -X main.date=$(cat SOURCE_DATE_EPOCH)"
'';
preCheck = ''
# Remove test that requires networking
rm pkg/plugin/aqua/client/client_integration_test.go
${lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
# Remove "[It] should make a request to fetch registries" test that fails on x86_64-darwin
rm pkg/plugin/aqua/client/client_test.go
''}
# Feed in all but the integration tests for testing
# This is because subPackages above limits what is built to just what we
# want but also limits the tests
getGoDirs() {
go list ./... | grep -v itest
}
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd starboard \
--bash <($out/bin/starboard completion bash) \
--fish <($out/bin/starboard completion fish) \
--zsh <($out/bin/starboard completion zsh)
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = "version";
meta = {
homepage = "https://github.com/aquasecurity/starboard";
changelog = "https://github.com/aquasecurity/starboard/releases/tag/v${finalAttrs.version}";
description = "Kubernetes-native security tool kit";
mainProgram = "starboard";
longDescription = ''
Starboard integrates security tools into the Kubernetes environment, so
that users can find and view the risks that relate to different resources
in a Kubernetes-native way. Starboard provides custom security resources
definitions and a Go module to work with a range of existing security
tools, as well as a kubectl-compatible command-line tool and an Octant
plug-in that make security reports available through familiar Kubernetes
tools.
'';
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jk ];
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
fetchurl,
appimageTools,
makeWrapper,
}:
let
pname = "starc";
version = "0.7.8";
src = fetchurl {
url = "https://github.com/story-apps/starc/releases/download/v${version}/starc-setup.AppImage";
hash = "sha256-thW7BzbY0eR72sa0eQT8iTo+K193k2C5b+R0zyXni9Y=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands = ''
# Fixup desktop item icons
install -D ${appimageContents}/starc.desktop -t $out/share/applications/
substituteInPlace $out/share/applications/starc.desktop \
--replace-fail "Icon=starc" "${''
Icon=dev.storyapps.starc
StartupWMClass=Story Architect''}"
cp -r ${appimageContents}/share/* $out/share/
wrapProgram $out/bin/starc \
--unset QT_PLUGIN_PATH
'';
meta = {
description = "Intuitive screenwriting app that streamlines the writing process";
homepage = "https://starc.app/";
mainProgram = "starc";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ pancaek ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "starcharts";
version = "1.9.1";
src = fetchFromGitHub {
owner = "caarlos0";
repo = "starcharts";
rev = "v${version}";
hash = "sha256-RLGKf5+HqJlZUhA5C3cwDumIhlbXcOr5iitI+7GZPBc=";
};
vendorHash = "sha256-BlVjGG6dhh7VO9driT0rnpbW6lORojiV+YhrV1Zlj4M=";
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
];
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Plot your repository stars over time";
mainProgram = "starcharts";
homepage = "https://github.com/caarlos0/starcharts";
changelog = "https://github.com/caarlos0/starcharts/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
fetchFromGitHub,
rustPlatform,
testers,
stardust-xr-atmosphere,
nix-update-script,
}:
rustPlatform.buildRustPackage {
pname = "stardust-xr-atmosphere";
version = "0-unstable-2024-08-22";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "atmosphere";
rev = "0c8bfb91e8ca32a4895f858067334ed265517309";
hash = "sha256-pk1+kkPV6fx+7Xz9hKFFVw402iztcvNC31zVCc3hfTY=";
};
cargoHash = "sha256-eQjRbavmUW2iw0OEC/DPk2FflTc4QCn0K/c4Og+sGW4=";
passthru = {
tests.versionTest = testers.testVersion {
package = stardust-xr-atmosphere;
command = "atmosphere --version";
version = "stardust-xr-atmosphere 0.4.0";
};
updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
};
meta = {
description = "Environment, homespace, and setup client for Stardust XR";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
mainProgram = "atmosphere";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "stardust-xr-flatland";
version = "0-unstable-2024-04-13";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "flatland";
rev = "b3b0f29c4ea1b82c96cf9de507837bf15a5e4c0e";
hash = "sha256-m7c6XpmpTM1URuqMG2KqtaWbL2Vt8vJFJtmvq123BmY=";
};
env.STARDUST_RES_PREFIXES = "${src}/res";
cargoHash = "sha256-oM4nQUEc3iq1x4uRp8Kw5WtE/L5b6VlLOfElMT9Tk98=";
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Flat window for Stardust XR";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
mainProgram = "flatland";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage {
pname = "stardust-xr-gravity";
version = "0-unstable-2024-12-29";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "gravity";
rev = "eca5e835cd3abee69984ce6312610644801457a9";
hash = "sha256-upw0MjGccSI1B10wabKPMGrEo7ATfg4a7Hzaucbf99w=";
};
cargoHash = "sha256-tkWY+dLFDnyir6d0supR3Z202p5i4UewY+J66mL1x/o=";
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Utility to launch apps and stardust clients at an offet";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
mainProgram = "gravity";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
fetchFromGitHub,
rustPlatform,
makeBinaryWrapper,
niri,
stardust-xr-kiara,
testers,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "stardust-xr-kiara";
version = "0-unstable-2024-07-13";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "kiara";
rev = "186b00a460c9dd8179f9af42fb9a420506ac3aff";
hash = "sha256-e89/x66S+MpJFtqat1hYEyRVUYFjef62LDN2hQPjNVw=";
};
cargoHash = "sha256-C1eD974cEGbo0vHJqdnCPUopDPDDa6hAFJdzSm8t618=";
nativeBuildInputs = [ makeBinaryWrapper ];
passthru = {
updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
tests.helpTest = testers.runCommand {
name = "stardust-xr-kiara";
script = ''
kiara --help
touch $out
'';
nativeBuildInputs = [ stardust-xr-kiara ];
};
};
postInstall = ''
wrapProgram $out/bin/kiara --prefix PATH : ${niri}/bin
'';
env = {
NIRI_CONFIG = "${src}/src/niri_config.kdl";
STARDUST_RES_PREFIXES = "${src}/res";
};
meta = {
description = "360-degree app shell / DE for Stardust XR using Niri";
homepage = "https://stardustxr.org/";
license = lib.licenses.mit;
mainProgram = "kiara";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage {
pname = "stardust-xr-magnetar";
version = "0-unstable-2025-04-03";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "magnetar";
rev = "63ff648bb64c23023a0047ea3ff2c0b6b1fd3caf";
hash = "sha256-LRI3HKuOUfUb93mHB8DUpp0hvES+GbzsKAxpkLCLzKQ=";
};
cargoHash = "sha256-ixzasTQDVVU8cGhSW3j8ELJmmYudwfnYQEIoULLQRyo=";
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Workspaces client for Stardust";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
mainProgram = "magnetar";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "stardust-xr-phobetor";
version = "0-unstable-2024-02-10";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "phobetor";
rev = "f47d10c9ab8b37941bc9ca94677d6c80332376f3";
hash = "sha256-7CWOoirQ/8zKCO7lBA9snyShlwsKYONiYkl39lQrpTY=";
};
env.STARDUST_RES_PREFIXES = "${src}/res";
cargoHash = "sha256-H65uAHMAIkJ9D5q/5HxMEbvcfoRhYdFgTQejp6bvu5w=";
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Handheld panel shell for Stardust XR";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
mainProgram = "phobetor";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "stardust-xr-protostar";
version = "0-unstable-2024-12-29";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "protostar";
rev = "9b73eb1e128b49a6d40a27a4cde7715d8cbd2674";
hash = "sha256-9KJO1Z3Aq0+hh9QqufWBxpMmfFOmdgMUJxfgGZMg2n4=";
};
env.STARDUST_RES_PREFIXES = "${src}/res";
cargoHash = "sha256-9XJ+nnvpTzr/3ii9dFkfZDex/++W5Mq9k0bh2Y6tueA=";
checkFlags = [
# ---- xdg::test_get_desktop_files stdout ----
# thread 'xdg::test_get_desktop_files' panicked at protostar/src/xdg.rs:98:5:
# assertion failed: desktop_files.iter().any(|file|
# file.ends_with("com.belmoussaoui.ashpd.demo.desktop"))
"--skip=xdg::test_get_desktop_files"
# ---- xdg::test_get_icon_path stdout ----
# thread 'xdg::test_get_icon_path' panicked at protostar/src/xdg.rs:355:38:
# Could not create image cache directory: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
# note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
"--skip=xdg::test_get_icon_path"
# ---- xdg::test_render_svg_to_png stdout ----
# thread 'xdg::test_render_svg_to_png' panicked at protostar/src/xdg.rs:355:38:
# Could not create image cache directory: Os { code: 13, kind: PermissionDenied, message: "Permission denied" }
"--skip=xdg::test_render_svg_to_png"
];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Prototype application launchers for Stardust XR";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
fetchFromGitHub,
nix-update-script,
rustPlatform,
cmake,
cpm-cmake,
fontconfig,
libGL,
libxkbcommon,
libgbm,
openxr-loader,
pkg-config,
xorg,
}:
rustPlatform.buildRustPackage rec {
pname = "stardust-xr-server";
version = "0.44.1";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "server";
tag = version;
hash = "sha256-sCatpWDdy7NFWOWUARjN3fZMDVviX2iV79G0HTxfYZU=";
};
cargoHash = "sha256-jCtMCZG3ku30tabTnVdGfgcLl5DoqhkJpLKPPliJgDU=";
nativeBuildInputs = [
cmake
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
fontconfig
libGL
libxkbcommon
libgbm
openxr-loader
xorg.libX11
xorg.libXfixes
];
CPM_SOURCE_CACHE = "./build";
postPatch = ''
install -D ${cpm-cmake}/share/cpm/CPM.cmake $(echo $cargoDepsCopy/stereokit-sys-*/StereoKit)/build/cpm/CPM_0.32.2.cmake
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Wayland compositor and display server for 3D applications";
homepage = "https://stardustxr.org/";
changelog = "https://github.com/StardustXR/server/releases";
license = lib.licenses.gpl2Plus;
mainProgram = "stardust-xr-server";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchFromGitHub,
rustPlatform,
libxkbcommon,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "stardust-xr-sphereland";
version = "0-unstable-2023-11-07";
src = fetchFromGitHub {
owner = "stardustxr";
repo = "sphereland";
rev = "39552d918c99a84eaf5f2d5e8734a472bf196f65";
hash = "sha256-LKdqTl14cdgD14IwAP34mWdDgREhy1CHOT86HywOxqM=";
};
env.STARDUST_RES_PREFIXES = "${src}/res";
cargoHash = "sha256-4mESTxfogMQxfDMQRVML752fkinOIqkddW3PHmvxekc=";
buildInputs = [
libxkbcommon
];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Pointer/keyboard operated window manager for Stardust XR";
homepage = "https://stardustxr.org";
license = lib.licenses.mit;
mainProgram = "sphereland";
maintainers = with lib.maintainers; [
pandapip1
technobaboo
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchurl,
zlib,
libtiff,
libxml2,
SDL_compat,
libX11,
libXi,
libXmu,
libXext,
libGLU,
libGL,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stardust";
version = "0.1.13";
src = fetchurl {
url = "http://iwar.free.fr/spip/IMG/gz/stardust-${finalAttrs.version}.tar.gz";
hash = "sha256-t5cykB5zHYYj4tlk9QDhL7YQVgEScBZw9OIVXz5NOqc=";
};
strictDeps = true;
enableParallelBuilding = true;
nativeBuildInputs = [
SDL_compat
libxml2
];
buildInputs = [
zlib
libtiff
libxml2
SDL_compat
libX11
libXi
libXmu
libXext
libGLU
libGL
];
patches = [ ./pointer-fix.patch ];
installFlags = [ "bindir=${placeholder "out"}/bin" ];
hardeningDisable = [ "format" ];
postConfigure = ''
substituteInPlace config.h \
--replace-fail '#define PACKAGE ""' '#define PACKAGE "stardust"'
'';
meta = {
description = "Space flight simulator";
homepage = "http://iwar.free.fr/spip/rubrique2.html";
mainProgram = "stardust";
maintainers = with lib.maintainers; [
raskin
marcin-serwin
];
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Plus;
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/src/obj.c b/src/obj.c
index 66d528b..ab08a4f 100644
--- a/src/obj.c
+++ b/src/obj.c
@@ -183,7 +183,7 @@ static short intnpar(char *line, int mode, struct face *face) {
*/
#define ALLOC_MORE 100
GLuint obj_load(Obj *object, const char *obj_file) {
- gzFile *gzp = NULL;
+ gzFile gzp = NULL;
char line[1024], command[1024];
char filename_mtl[256] = "\0";

View File

@@ -0,0 +1,44 @@
{
stdenv,
lib,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "starfetch";
version = "0.0.4";
src = fetchFromGitHub {
owner = "Haruno19";
repo = "starfetch";
rev = version;
sha256 = "sha256-I2M/FlLRkGtD2+GcK1l5+vFsb5tCb4T3UJTPxRx68Ww=";
};
postPatch = ''
substituteInPlace src/starfetch.cpp --replace-fail /usr/local/ $out/
''
+ lib.optionalString stdenv.cc.isClang ''
substituteInPlace makefile --replace-warn g++ clang++
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mkdir -p $out/share/starfetch
cp starfetch $out/bin/
cp -r res/* $out/share/starfetch/
runHook postInstall
'';
meta = with lib; {
description = "CLI star constellations displayer";
homepage = "https://github.com/Haruno19/starfetch";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ annaaurora ];
mainProgram = "starfetch";
};
}

View File

@@ -0,0 +1,19 @@
diff --git a/Makefile b/Makefile
index 872af46..7eba8a1 100644
--- a/Makefile
+++ b/Makefile
@@ -156,13 +156,7 @@ test:
# Compile and run the test suite through Valgrind to check for
# memory errors, then generate an HTML code coverage report
# using gcovr
- $(CC) $(CC_ARGS) -O0 $(DEBUG_FLAGS) $(PLAT_FLAGS) $(GCOVARGS) \
+ $(CC) $(CC_ARGS) -O0 $(DEBUG_FLAGS) $(PLAT_FLAGS) \
$(shell find src tests -name *.c) \
-Iinclude \
-o $(NAME).tests
- # If Valgrind exits non-zero, try running 'gdb ./libcds.tests'
- # to debug the test suite
- valgrind ./$(NAME).tests --track-origins=yes --leak-check=full
- mkdir html || rm -rf html/*
- gcovr -r . --exclude=bench --html --html-details -o html/coverage.html
- $(BROWSER) html/coverage.html &

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchpatch,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "stargate-libcds";
version = "1.0.0";
src = fetchFromGitHub {
owner = "stargateaudio";
repo = "libcds";
rev = version;
sha256 = "sha256-THThEzS8gGdwn3h0EBttaX5ljZH9Ma2Rcg143+GIdU8=";
};
# Fix 'error: unrecognized command line option' in platforms other than x86
PLAT_FLAGS = lib.optionalString stdenv.hostPlatform.isx86_64 "-mfpmath=sse -mssse3";
patches = [
# Remove unnecessary tests (valgrind, coverage)
./Makefile.patch
# Fix for building on darwin
(fetchpatch {
name = "malloc-to-stdlib.patch";
url = "https://github.com/stargateaudio/libcds/commit/65dc08f059deda8ba5707ba6116b616d0ad0bd8d.patch";
sha256 = "sha256-FIGlobUVrDYOtnHjsWyE420PoULPHEK/3T9Fv8hfTl4=";
})
];
doCheck = true;
installPhase = ''
runHook preInstall
install -D libcds.so -t $out/lib/
runHook postInstall
'';
meta = with lib; {
description = "C data structure library";
homepage = "https://github.com/stargateaudio/libcds";
maintainers = [ ];
license = licenses.lgpl3Only;
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
fetchFromSourcehut,
rustPlatform,
installShellFiles,
scdoc,
nixosTests,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "stargazer";
version = "1.3.3";
src = fetchFromSourcehut {
owner = "~zethra";
repo = "stargazer";
rev = version;
hash = "sha256-ZkJ0X++QmQIsDKBjLEHRHeWJxFLooqXBBijIwSF6dcQ=";
};
cargoHash = "sha256-ufp9ib0wkehJcKHpt2yyV//000isY2+HaOzlPVMz50Y=";
passthru = {
tests.basic-functionality = nixosTests.stargazer;
updateScript = nix-update-script { };
};
nativeBuildInputs = [
installShellFiles
scdoc
];
postInstall = ''
scdoc < doc/stargazer.scd > stargazer.1
scdoc < doc/stargazer-ini.scd > stargazer.ini.5
installManPage stargazer.1
installManPage stargazer.ini.5
installShellCompletion completions/stargazer.{bash,zsh,fish}
'';
meta = {
description = "Fast and easy to use Gemini server";
mainProgram = "stargazer";
homepage = "https://sr.ht/~zethra/stargazer/";
license = lib.licenses.agpl3Plus;
changelog = "https://git.sr.ht/~zethra/stargazer/refs/${version}";
maintainers = with lib.maintainers; [ gaykitty ];
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
yarnConfigHook,
nodejs_24,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "starkiller";
version = "3.1.0";
src = fetchFromGitHub {
owner = "bc-security";
repo = "starkiller";
rev = "v${finalAttrs.version}";
hash = "sha256-KjEHbRhbXY57886uziRzUoA/MzK6QZx7/b1lrmIKsWc=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-fkpYRnBEM/nUtdqnWMb7Trqa5SnCrdX7RUYgd73RGFE=";
};
buildPhase = ''
runHook preBuild
# Copying the workaround from
# https://github.com/NixOS/nixpkgs/pull/386706
pushd node_modules/vue-demi
yarn run postinstall
popd
yarn --offline build
runHook postBuild
'';
postInstall = ''
mkdir $out
cp -r dist/** $out
'';
nativeBuildInputs = [
yarnConfigHook
# Needed for executing package.json scripts
nodejs_24
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/BC-SECURITY/Starkiller";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
description = "Web UI for Empire";
maintainers = with lib.maintainers; [
fzakaria
vrose
];
};
})

View File

@@ -0,0 +1,27 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "starlark-rust";
version = "0.13.0";
src = fetchCrate {
pname = "starlark_bin";
inherit version;
hash = "sha256-1M3p5QHMOBgmdEyr31Bhv7X8UdUmoeL0o1hWaw2tahQ=";
};
cargoHash = "sha256-BSXbFKR4AOKhssj+m5PIfgaoeRVDK+KRkApi8FUa8jg=";
meta = {
description = "Rust implementation of the Starlark language";
homepage = "https://github.com/facebook/starlark-rust";
changelog = "https://github.com/facebook/starlark-rust/blob/v${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ figsoda ];
mainProgram = "starlark";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
buildGoModule,
nix-update-script,
}:
buildGoModule {
pname = "starlark";
version = "0-unstable-2025-09-06";
src = fetchFromGitHub {
owner = "google";
repo = "starlark-go";
rev = "bf296ed553ea1715656054a7f64ac6a6dd161360";
hash = "sha256-ijZvmR9oFsIvpindO1RSi01USr2bhBATvVEQtYlgP/A=";
};
vendorHash = "sha256-8drlCBy+KROyqXzm/c+HBe/bMVOyvwRoLHxOApJhMfo=";
ldflags = [
"-s"
"-w"
];
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
homepage = "https://github.com/google/starlark-go";
description = "Interpreter for Starlark, implemented in Go";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ aaronjheng ];
mainProgram = "starlark";
};
}

View File

@@ -0,0 +1,46 @@
{
rustPlatform,
lib,
testers,
fetchFromGitHub,
protobuf,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "starpls";
version = "0.1.22";
src = fetchFromGitHub {
owner = "withered-magic";
repo = "starpls";
tag = "v${finalAttrs.version}";
hash = "sha256-t9kdpBKyGM61CKhtfO5urVVzyKpL0bX0pZuf0djDdCw=";
};
cargoHash = "sha256-5xYfQRm7U7sEQiJEfjaLznoXUxHsxnLmIEA/OxTkjFg=";
nativeBuildInputs = [
protobuf
];
# The tests assume Bazel build and environment variables set like
# RUNFILES_DIR which don't have an equivalent in Cargo.
doCheck = false;
passthru = {
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "starpls version";
version = "v${finalAttrs.version}";
};
};
meta = {
description = "Language server for Starlark";
homepage = "https://github.com/withered-magic/starpls";
license = lib.licenses.asl20;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ aaronjheng ];
sourceProvenance = with lib.sourceTypes; [ fromSource ];
mainProgram = "starpls";
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
rustPlatform,
fetchCrate,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage rec {
pname = "starry";
version = "2.0.2";
src = fetchCrate {
inherit pname version;
hash = "sha256-/ZUmMLEqlpqu+Ja/3XjFJf+OFZJCz7rp5MrQBEjwsXs=";
};
cargoHash = "sha256-NNQhU6NVacRCzFp2hWcBvHvD6zPOlTvII8n7k505HrY=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
meta = with lib; {
description = "Current stars history tells only half the story";
homepage = "https://github.com/Canop/starry";
license = licenses.agpl3Only;
maintainers = with maintainers; [ figsoda ];
mainProgram = "starry";
};
}

View File

@@ -0,0 +1,111 @@
{
lib,
fetchzip,
libGL,
makeWrapper,
openal,
openjdk17,
stdenv,
xorg,
copyDesktopItems,
makeDesktopItem,
writeScript,
}:
let
openjdk = openjdk17;
in
stdenv.mkDerivation rec {
pname = "starsector";
version = "0.98a-RC8";
src = fetchzip {
url = "https://f005.backblazeb2.com/file/fractalsoftworks/release/starsector_linux-${version}.zip";
sha256 = "sha256-W/6QpgKbUJC+jWOlAOEEGStee5KJuLi020kRtPQXK3U=";
};
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
buildInputs = [
xorg.libXxf86vm
openal
libGL
];
dontBuild = true;
desktopItems = [
(makeDesktopItem {
name = "starsector";
exec = "starsector";
icon = "starsector";
comment = meta.description;
genericName = "starsector";
desktopName = "Starsector";
categories = [ "Game" ];
})
];
# need to cd into $out in order for classpath to pick up correct jar files
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/starsector
rm -r jre_linux # remove bundled jre7
rm starfarer.api.zip
cp -r ./* $out/share/starsector
mkdir -p $out/share/icons/hicolor/64x64/apps
ln -s $out/share/starsector/graphics/ui/s_icon64.png \
$out/share/icons/hicolor/64x64/apps/starsector.png
wrapProgram $out/share/starsector/starsector.sh \
--prefix PATH : ${
lib.makeBinPath [
openjdk
xorg.xrandr
]
} \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath buildInputs} \
--run 'mkdir -p ''${XDG_DATA_HOME:-~/.local/share}/starsector' \
--chdir "$out/share/starsector"
ln -s $out/share/starsector/starsector.sh $out/bin/starsector
runHook postInstall
'';
# it tries to run everything with relative paths, which makes it CWD dependent
# also point mod, screenshot, and save directory to $XDG_DATA_HOME
# additionally, add some GC options to improve performance of the game,
# remove flags "PermSize" and "MaxPermSize" that were removed with Java 8 and
# pass-through CLI args ($@) to the JVM.
postPatch = ''
substituteInPlace starsector.sh \
--replace-fail "./jre_linux/bin/java" "${lib.getExe openjdk}" \
--replace-fail "./native/linux" "$out/share/starsector/native/linux" \
--replace-fail "./compiler_directives.txt" "$out/share/starsector/compiler_directives.txt" \
--replace-fail "=." "=\''${XDG_DATA_HOME:-\$HOME/.local/share}/starsector" \
--replace-fail "com.fs.starfarer.StarfarerLauncher" "\"\$@\" com.fs.starfarer.StarfarerLauncher"
'';
passthru.updateScript = writeScript "starsector-update-script" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
set -eou pipefail;
version=$(curl -s https://fractalsoftworks.com/preorder/ | grep -oP "https://f005.backblazeb2.com/file/fractalsoftworks/release/starsector_linux-\K.*?(?=\.zip)" | head -1)
update-source-version ${pname} "$version" --file=./pkgs/by-name/st/starsector/package.nix
'';
meta = with lib; {
description = "Open-world single-player space-combat, roleplaying, exploration, and economic game";
homepage = "https://fractalsoftworks.com";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.unfree;
maintainers = with maintainers; [
bbigras
rafaelrc
];
};
}

View File

@@ -0,0 +1,73 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
installShellFiles,
writableTmpDirAsHomeHook,
gitMinimal,
nixosTests,
buildPackages,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "starship";
version = "1.23.0";
src = fetchFromGitHub {
owner = "starship";
repo = "starship";
tag = "v${finalAttrs.version}";
hash = "sha256-5Euhbuu1uiJ5HJNlPs9sUoGcc5QWqXqNmEH0jpfGLlc=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
writableTmpDirAsHomeHook
];
postInstall = ''
presetdir=$out/share/starship/presets/
mkdir -p $presetdir
cp docs/public/presets/toml/*.toml $presetdir
''
+ lib.optionalString (stdenv.hostPlatform.emulatorAvailable buildPackages) (
let
emulator = stdenv.hostPlatform.emulator buildPackages;
in
''
installShellCompletion --cmd starship \
--bash <(${emulator} $out/bin/starship completions bash) \
--fish <(${emulator} $out/bin/starship completions fish) \
--zsh <(${emulator} $out/bin/starship completions zsh)
''
);
cargoHash = "sha256-cxDWaPlNK7POJ3GhA21NlJ6q62bqHdA/4sru5pLkvOA=";
nativeCheckInputs = [
gitMinimal
writableTmpDirAsHomeHook
];
passthru.tests = {
inherit (nixosTests) starship;
};
meta = {
description = "Minimal, blazing fast, and extremely customizable prompt for any shell";
homepage = "https://starship.rs";
downloadPage = "https://github.com/starship/starship";
changelog = "https://github.com/starship/starship/releases/tag/v${finalAttrs.version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [
danth
Br1ght0ne
Frostman
awwpotato
sigmasquadron
];
mainProgram = "starship";
};
})

View File

@@ -0,0 +1,120 @@
{
stdenv,
lib,
fetchurl,
dpkg,
wrapGAppsHook3,
hicolor-icon-theme,
gtk3,
glib,
systemd,
xorg,
nss,
nspr,
atk,
at-spi2-atk,
dbus,
gdk-pixbuf,
pango,
cairo,
expat,
libdrm,
libgbm,
alsa-lib,
at-spi2-core,
cups,
libxkbcommon,
bintools,
libGL,
}:
stdenv.mkDerivation (finalAttrs: {
version = "7.0.0";
pname = "staruml";
src = fetchurl {
url = "https://files.staruml.io/releases-v7/StarUML_${finalAttrs.version}_amd64.deb";
hash = "sha256-z25qeE2G9F010IE1WFxwIifYqowjB4dpUDgRg38RtQc=";
};
nativeBuildInputs = [
wrapGAppsHook3
dpkg
];
buildInputs = [
glib
hicolor-icon-theme
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mv opt $out
mv usr/share $out
rm -rf $out/share/doc
substituteInPlace $out/share/applications/staruml.desktop \
--replace-fail "/opt/StarUML/staruml" "$out/bin/staruml"
mkdir -p $out/lib
ln -s ${lib.getLib stdenv.cc.cc}/lib/libstdc++.so.6 $out/lib/
ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
patchelf --interpreter ${bintools.dynamicLinker} --add-needed libGL.so.1 $out/opt/StarUML/staruml
ln -s $out/opt/StarUML/staruml $out/bin/staruml
runHook postInstall
'';
preFixup = ''
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : $out/lib:${
lib.makeLibraryPath [
glib
gtk3
xorg.libXdamage
xorg.libX11
xorg.libxcb
xorg.libXcomposite
xorg.libXcursor
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrender
xorg.libXtst
xorg.libxshmfence
libxkbcommon
nss
nspr
atk
at-spi2-atk
dbus
gdk-pixbuf
pango
cairo
xorg.libXrandr
expat
libdrm
libgbm
alsa-lib
at-spi2-core
cups
libGL
]
}
)
'';
meta = {
description = "Sophisticated software modeler";
homepage = "https://staruml.io/";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ kashw2 ];
platforms = [ "x86_64-linux" ];
mainProgram = "staruml";
};
})

View File

@@ -0,0 +1,145 @@
{
buildGoModule,
fetchFromGitHub,
fetchYarnDeps,
lib,
nixosTests,
nodejs,
stash,
stdenv,
testers,
yarnBuildHook,
yarnConfigHook,
}:
let
inherit (lib.importJSON ./version.json)
gitHash
srcHash
vendorHash
version
yarnHash
;
pname = "stash";
in
buildGoModule (
finalAttrs:
let
frontend = stdenv.mkDerivation (final: {
pname = "${finalAttrs.pname}-ui";
inherit (finalAttrs) version gitHash;
src = "${finalAttrs.src}/ui/v2.5";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${final.src}/yarn.lock";
hash = finalAttrs.yarnHash;
};
nativeBuildInputs = [
yarnConfigHook
yarnBuildHook
# Needed for executing package.json scripts
nodejs
];
postPatch = ''
substituteInPlace codegen.ts \
--replace-fail "../../graphql/" "${finalAttrs.src}/graphql/"
'';
buildPhase = ''
runHook preBuild
export HOME=$(mktemp -d)
export VITE_APP_DATE='1970-01-01 00:00:00'
export VITE_APP_GITHASH=${finalAttrs.gitHash}
export VITE_APP_STASH_VERSION=v${finalAttrs.version}
export VITE_APP_NOLEGACY=true
yarn --offline run gqlgen
yarn --offline build
mv build $out
runHook postBuild
'';
dontInstall = true;
dontFixup = true;
});
in
{
inherit
pname
version
gitHash
yarnHash
vendorHash
;
src = fetchFromGitHub {
owner = "stashapp";
repo = "stash";
tag = "v${finalAttrs.version}";
hash = srcHash;
};
ldflags = [
"-s"
"-w"
"-X 'github.com/stashapp/stash/internal/build.buildstamp=1970-01-01 00:00:00'"
"-X 'github.com/stashapp/stash/internal/build.githash=${finalAttrs.gitHash}'"
"-X 'github.com/stashapp/stash/internal/build.version=v${finalAttrs.version}'"
"-X 'github.com/stashapp/stash/internal/build.officialBuild=false'"
];
tags = [
"sqlite_stat4"
"sqlite_math_functions"
];
subPackages = [ "cmd/stash" ];
postPatch = ''
cp -a ${frontend} ui/v2.5/build
'';
preBuild = ''
# `go mod tidy` requires internet access and does nothing
echo "skip_mod_tidy: true" >> gqlgen.yml
# remove `-trimpath` fron `GOFLAGS` because `gqlgen` does not work with it
GOFLAGS="''${GOFLAGS/-trimpath/}" go generate ./cmd/stash
'';
strictDeps = true;
passthru = {
inherit frontend;
updateScript = ./update.py;
tests = {
inherit (nixosTests) stash;
version = testers.testVersion {
package = stash;
version = "v${finalAttrs.version} (${finalAttrs.gitHash}) - Unofficial Build - 1970-01-01 00:00:00";
};
};
};
meta = {
mainProgram = "stash";
description = "Organizer for your adult videos/images";
license = lib.licenses.agpl3Only;
homepage = "https://stashapp.cc/";
changelog = "https://github.com/stashapp/stash/blob/v${finalAttrs.version}/ui/v2.5/src/docs/en/Changelog/v${lib.versions.major finalAttrs.version}${lib.versions.minor finalAttrs.version}0.md";
maintainers = with lib.maintainers; [
Golo300
DrakeTDL
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
};
}
)

82
pkgs/by-name/st/stash/update.py Executable file
View File

@@ -0,0 +1,82 @@
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3 prefetch-yarn-deps nix-prefetch-git nix-prefetch
from pathlib import Path
from shutil import copyfile
from urllib.request import Request, urlopen
import json
import os
import subprocess
def run_external(args: list[str]):
proc = subprocess.run(
args,
check=True,
stdout=subprocess.PIPE,
)
return proc.stdout.strip().decode("utf8")
def get_latest_release_tag():
req = Request("https://api.github.com/repos/stashapp/stash/tags?per_page=1")
if "GITHUB_TOKEN" in os.environ:
req.add_header("authorization", f"Bearer {os.environ['GITHUB_TOKEN']}")
with urlopen(req) as resp:
return json.loads(resp.read())[0]
def prefetch_github(rev: str):
print(f"Prefetching stashapp/stash({rev})")
proc = run_external(["nix-prefetch-git", "--no-deepClone", "--rev", rev, f"https://github.com/stashapp/stash"])
return json.loads(proc)
def prefetch_yarn(lock_file: str):
print(f"Prefetching yarn deps")
hash = run_external(["prefetch-yarn-deps", lock_file])
return run_external(["nix", "hash", "convert", "--hash-algo", "sha256", hash])
def prefetch_go_modules(src: str, version: str):
print(f"Prefetching go modules")
expr = fr"""
{{ sha256 }}: (buildGoModule {{
pname = "stash";
src = {src};
version = "{version}";
vendorHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
}}).goModules.overrideAttrs (_: {{ modSha256 = sha256; }})
"""
return run_external([
"nix-prefetch",
"--option",
"extra-experimental-features",
"flakes",
expr
])
def save_version_json(version: dict[str, str]):
print("Writing version.json")
with open(Path(__file__).parent / "version.json", 'w') as f:
json.dump(version, f, indent=2)
f.write("\n")
if __name__ == "__main__":
release = get_latest_release_tag()
src = prefetch_github(release['name'])
yarn_hash = prefetch_yarn(f"{src['path']}/ui/v2.5/yarn.lock")
save_version_json({
"version": release["name"][1:],
"gitHash": release["commit"]["sha"][:8],
"srcHash": src["hash"],
"yarnHash": yarn_hash,
"vendorHash": prefetch_go_modules(src["path"], release["name"][1:])
})

View File

@@ -0,0 +1,7 @@
{
"version": "0.28.1",
"gitHash": "cc6917f2",
"srcHash": "sha256-hUx4y7VzsZYbykt9eOdwho0f/Xueh2eh7QykCsgt62A=",
"yarnHash": "sha256-MEyhPPzqJH7lNB5CLMbehjJXU/HQUNsFtPrl670kTvA=",
"vendorHash": "sha256-bD2YpsrksvDWvrokvRBGdnAUNJ5XHD/jDrF5dSCESr0="
}

View File

@@ -0,0 +1,59 @@
{
lib,
buildGoModule,
fetchFromGitHub,
curl,
stdenv,
testers,
static-server,
replaceVars,
}:
buildGoModule rec {
pname = "static-server";
version = "1.2.1";
src = fetchFromGitHub {
owner = "eliben";
repo = "static-server";
rev = "v${version}";
hash = "sha256-AZcNh/kF6IdAceA7qe+nhRlwU4yGh19av/S1Zt7iKIs=";
};
vendorHash = "sha256-1p3dCLLo+MTPxf/Y3zjxTagUi+tq7nZSj4ZB/aakJGY=";
patches = [
# patch out debug.ReadBuidlInfo since version information is not available with buildGoModule
(replaceVars ./version.patch {
inherit version;
})
];
nativeCheckInputs = [
curl
];
ldflags = [
"-s"
"-w"
];
# tests sometimes fail with SIGQUIT on darwin
doCheck = !stdenv.hostPlatform.isDarwin;
passthru.tests = {
version = testers.testVersion {
package = static-server;
};
};
__darwinAllowLocalNetworking = true;
meta = with lib; {
description = "Simple, zero-configuration HTTP server CLI for serving static files";
homepage = "https://github.com/eliben/static-server";
license = licenses.unlicense;
maintainers = with maintainers; [ figsoda ];
mainProgram = "static-server";
};
}

View File

@@ -0,0 +1,23 @@
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -15,7 +15,6 @@ import (
"net"
"net/http"
"os"
- "runtime/debug"
"strings"
)
@@ -50,11 +49,7 @@ func Main() int {
flags.Parse(os.Args[1:])
if *versionFlag {
- if buildInfo, ok := debug.ReadBuildInfo(); ok {
- fmt.Printf("%v %v\n", programName, buildInfo.Main.Version)
- } else {
- errorLog.Printf("version info unavailable! run 'go version -m %v'", programName)
- }
+ fmt.Printf("%v %v\n", programName, "@version@")
os.Exit(0)
}

View File

@@ -0,0 +1,49 @@
{
lib,
rustPlatform,
fetchFromGitHub,
nixosTests,
}:
rustPlatform.buildRustPackage rec {
pname = "static-web-server";
version = "2.38.1";
src = fetchFromGitHub {
owner = "static-web-server";
repo = "static-web-server";
rev = "v${version}";
hash = "sha256-fcD1jd9kwm/jCYdvNGEnanLO/wUKeYy5OqOeQE2lGP4=";
};
cargoHash = "sha256-rfhRMQb7MX2722wcMk35qATav6WFFULy3Ix3WcC7r4M=";
# Some tests rely on timestamps newer than 18 Nov 1974 00:00:00
preCheck = ''
find docker/public -exec touch -m {} \;
'';
# Need to copy in the systemd units for systemd.packages to discover them
postInstall = ''
install -Dm444 -t $out/lib/systemd/system/ systemd/static-web-server.{service,socket}
'';
passthru.tests = {
inherit (nixosTests) static-web-server;
};
meta = {
description = "Asynchronous web server for static files-serving";
homepage = "https://static-web-server.net/";
changelog = "https://github.com/static-web-server/static-web-server/blob/v${version}/CHANGELOG.md";
license = with lib.licenses; [
mit # or
asl20
];
maintainers = with lib.maintainers; [
figsoda
misilelab
];
mainProgram = "static-web-server";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
multiStdenv,
fetchurl,
}:
multiStdenv.mkDerivation rec {
pname = "statifier";
version = "1.7.4";
src = fetchurl {
url = "mirror://sourceforge/statifier/statifier-${version}.tar.gz";
sha256 = "03lzkla6knjhh186b43cac410x2fmhi28pkmzb3d211n3zp5i9y8";
};
phaseNames = [
"patchPhase"
"installPhase"
];
postPatch = ''
sed -e s@/usr/@"$out/"@g -i */Makefile src/statifier
sed -e s@/bin/bash@"${multiStdenv.shell}"@g -i src/*.sh
'';
meta = with lib; {
description = "Tool for creating static Linux binaries";
mainProgram = "statifier";
platforms = platforms.linux;
license = licenses.gpl2Only;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "statik";
version = "0.1.7";
src = fetchFromGitHub {
owner = "rakyll";
repo = "statik";
rev = "v${version}";
sha256 = "ahsNiac/3I2+PUqc90E73Brb99M68ewh9nWXoupfE3g=";
};
vendorHash = null;
# Avoid building example
subPackages = [
"."
"fs"
];
# Tests are checking that the files embedded are preserving
# their meta data like dates etc, but it assumes to be in 2048
# which is not the case once entered the nix store
doCheck = false;
meta = with lib; {
homepage = "https://github.com/rakyll/statik";
description = "Embed files into a Go executable";
mainProgram = "statik";
license = licenses.asl20;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
rustPlatform,
fetchFromGitHub,
withJson ? true,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "statix";
# also update version of the vim plugin in
# pkgs/applications/editors/vim/plugins/overrides.nix
# the version can be found in flake.nix of the source code
version = "0.5.8";
src = fetchFromGitHub {
owner = "oppiliappan";
repo = "statix";
rev = "v${version}";
sha256 = "sha256-bMs3XMiGP6sXCqdjna4xoV6CANOIWuISSzCaL5LYY4c=";
};
cargoHash = "sha256-Pi1q2qNLjQYr3Wla7rqrktNm0StszB2klcfzwAnF3tE=";
buildFeatures = lib.optional withJson "json";
# tests are failing on darwin
doCheck = !stdenv.hostPlatform.isDarwin;
meta = with lib; {
description = "Lints and suggestions for the nix programming language";
homepage = "https://github.com/oppiliappan/statix";
license = licenses.mit;
mainProgram = "statix";
maintainers = with maintainers; [
figsoda
nerdypepper
];
};
}

View File

@@ -0,0 +1,104 @@
{
buildGoModule,
fetchFromGitHub,
fetchYarnDeps,
go-rice,
lib,
nodejs,
stdenv,
yarnBuildHook,
yarnConfigHook,
}:
let
version = "0.93.0";
src = fetchFromGitHub {
owner = "statping-ng";
repo = "statping-ng";
tag = "v${version}";
hash = "sha256-VVM3Jyahs0OQuHiF/r+U9vq9TBOFOtuTzBurAhR1Dhc=";
};
frontend = stdenv.mkDerivation {
pname = "statping-ng-frontend";
inherit version;
src = "${src}/frontend";
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/frontend/yarn.lock";
hash = "sha256-e8GyKIJ0RopRliVMVrY8eEd6Qx/gTKbW3biPCSqbRrQ=";
};
nativeBuildInputs = [
nodejs
yarnConfigHook
yarnBuildHook
];
preBuild = ''
export NODE_OPTIONS=--openssl-legacy-provider
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
cp -rt "$out" dist/* src/assets/scss public/robots.txt
runHook postInstall
'';
};
in
buildGoModule rec {
pname = "statping-ng";
inherit version src;
proxyVendor = true;
vendorHash = "sha256-ZcNOI5/Fs7/U8/re89YpJ3qlMaQStLrrNHXiHuBQwQk=";
postPatch = ''
ln -s "${frontend}" source/dist
'';
nativeBuildInputs = [
go-rice
];
preBuild = ''
(cd source && rice embed-go)
'';
subPackages = [
"cmd/"
];
ldflags = [
"-s"
"-w"
"-X main.VERSION=${version}"
];
tags = [
"netgo"
"ousergo"
];
doCheck = false;
postInstall = ''
mv $out/bin/cmd $out/bin/statping-ng
$out/bin/statping-ng version | grep ${version} > /dev/null
'';
meta = {
description = "Status Page for monitoring your websites and applications with beautiful graphs, analytics, and plugins";
homepage = "https://github.com/statping-ng/statping-ng";
changelog = "https://github.com/statping-ng/statping-ng/releases/tag/v${src.tag}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
FKouhai
];
platforms = lib.platforms.linux;
mainProgram = "statping-ng";
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenvNoCC,
fetchurl,
undmg,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stats";
version = "2.11.56";
src = fetchurl {
url = "https://github.com/exelban/stats/releases/download/v${finalAttrs.version}/Stats.dmg";
hash = "sha256-gSWxiPj0wHQFAkXIYEyYtsVTO5jU/k873YOtz7JUcJQ=";
};
sourceRoot = ".";
nativeBuildInputs = [ undmg ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
cp -r *.app "$out/Applications"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "macOS system monitor in your menu bar";
homepage = "https://github.com/exelban/stats";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
FlameFlag
emilytrau
iedame
];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
ncurses,
glibc,
}:
stdenv.mkDerivation rec {
pname = "statserial";
version = "1.1";
src = fetchurl {
url = "http://www.ibiblio.org/pub/Linux/system/serial/statserial-${version}.tar.gz";
sha256 = "0rrrmxfba5yn836zlgmr8g9xnrpash7cjs7lk2m44ac50vakpks0";
};
postPatch = ''
substituteInPlace Makefile \
--replace '-lcurses' '-lncurses'
substituteInPlace Makefile \
--replace 'LDFLAGS = -s -N' '#LDFLAGS = -s -N'
'';
buildInputs = [
ncurses
glibc
];
installPhase = ''
mkdir -p $out/bin
cp statserial $out/bin
mkdir -p $out/share/man/man1
cp statserial.1 $out/share/man/man1
'';
meta = with lib; {
homepage = "https://sites.google.com/site/tranter/software";
description = "Display serial port modem status lines";
license = licenses.gpl2Plus;
longDescription = ''
Statserial displays a table of the signals on a standard 9-pin or
25-pin serial port, and indicates the status of the handshaking lines. It
can be useful for debugging problems with serial ports or modems.
'';
platforms = platforms.unix;
maintainers = with maintainers; [ rps ];
mainProgram = "statserial";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
appimageTools,
fetchzip,
fetchurl,
makeDesktopItem,
}:
let
version = "2.29.0";
commit = "f78ece";
src = fetchzip {
name = "StatusIm-Desktop-v${version}-${commit}-x86_64.AppImage";
url = "https://github.com/status-im/status-desktop/releases/download/${version}/StatusIm-Desktop-v${version}-${commit}-x86_64.tar.gz";
hash = "sha256-i91E1eaN6paM+uZ8EvO1+Wj0Po9KnzQorG0tWKF4hn8=";
stripRoot = false;
postFetch = ''
mv $out/StatusIm-Desktop-v${version}-${commit}-x86_64.AppImage $TMPDIR/tmp
rm -rf $out
mv $TMPDIR/tmp $out
'';
};
desktopEntry = makeDesktopItem {
name = "status";
desktopName = "Status Desktop";
exec = "status-desktop";
icon = "status";
comment = "Desktop client for the Status Network";
categories = [ "Network" ];
};
icon = fetchurl {
url = "https://github.com/status-im/status-desktop/raw/afde83651724a555626b5d9a3d582918de6c3d59/status.png";
hash = "sha256-ViGuOr9LskGs/P7pjPO9zYgosWaZlZZYVuPpliOA5dY=";
};
pname = "status-desktop";
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D ${desktopEntry}/share/applications/status.desktop $out/share/applications/status.desktop
install -m 444 -D ${icon} $out/share/icons/hicolor/512x512/apps/status.png
'';
meta = with lib; {
description = "Desktop client for the Status Network";
license = licenses.mpl20;
maintainers = with maintainers; [ a-kenji ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
buildGoModule,
stayrtr,
testers,
}:
buildGoModule rec {
pname = "stayrtr";
version = "0.6.2";
src = fetchFromGitHub {
owner = "bgp";
repo = "stayrtr";
rev = "v${version}";
hash = "sha256-QdPp+AHOVn/L4lArhwUNNu3OP2ALEFzs/hVnfSxaEbg=";
};
vendorHash = "sha256-m1CHpmTUQVkBjkjg2bjl9llU1Le1GLRKKLGT4h7MbnE=";
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
];
passthru.tests.version = testers.testVersion {
package = stayrtr;
};
meta = {
changelog = "https://github.com/bgp/stayrtr/releases/tag/v${version}";
description = "RPKI-To-Router server implementation in Go";
homepage = "https://github.com/bgp/stayrtr/";
license = lib.licenses.bsd3;
mainProgram = "stayrtr";
maintainers = with lib.maintainers; [ _0x4A6F ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitHub,
copyPkgconfigItems,
makePkgconfigItem,
}:
stdenv.mkDerivation rec {
pname = "stb";
version = "0-unstable-2023-01-29";
src = fetchFromGitHub {
owner = "nothings";
repo = "stb";
rev = "5736b15f7ea0ffb08dd38af21067c314d6a3aae9";
hash = "sha256-s2ASdlT3bBNrqvwfhhN6skjbmyEnUgvNOrvhgUSRj98=";
};
nativeBuildInputs = [ copyPkgconfigItems ];
pkgconfigItems = [
(makePkgconfigItem rec {
name = "stb";
version = "1";
cflags = [ "-I${variables.includedir}/stb" ];
variables = rec {
prefix = "${placeholder "out"}";
includedir = "${prefix}/include";
};
inherit (meta) description;
})
];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/include/stb
cp *.h $out/include/stb/
runHook postInstall
'';
meta = with lib; {
description = "Single-file public domain libraries for C/C++";
homepage = "https://github.com/nothings/stb";
license = with licenses; [
mit
# OR
unlicense
];
platforms = platforms.all;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "stc";
version = "1.5.4";
src = fetchFromGitHub {
owner = "tenox7";
repo = "stc";
rev = version;
sha256 = "sha256-ftlq7vrnTb4N2bqwiF9gtRj7hZlo6PTUMb/bk2hn/cU=";
};
vendorHash = "sha256-qLpWXikTr+vB2bIw2EqnoJ0uOxUc/qc6SdGEJQXwmTQ=";
meta = {
description = "Syncthing CLI Tool";
homepage = "https://github.com/tenox7/stc";
changelog = "https://github.com/tenox7/stc/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.ivankovnatsky ];
mainProgram = "stc";
};
}

View File

@@ -0,0 +1,32 @@
{
stdenv,
fetchFromGitHub,
cmake,
lib,
}:
stdenv.mkDerivation rec {
pname = "stderred";
version = "unstable-2021-04-28";
src = fetchFromGitHub {
owner = "sickill";
repo = "stderred";
rev = "b2238f7c72afb89ca9aaa2944d7f4db8141057ea";
sha256 = "sha256-k/EA327AsRHgUYu7QqSF5yzOyO6h5XcE9Uv4l1VcIPI=";
};
nativeBuildInputs = [
cmake
];
sourceRoot = "${src.name}/src";
meta = with lib; {
description = "Colorize all stderr output that goes to terminal, making it distinguishable from stdout";
homepage = "https://github.com/sickill/stderred";
license = licenses.mit;
maintainers = with maintainers; [ vojta001 ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
curl,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "stdman";
version = "2024.07.05";
src = fetchFromGitHub {
owner = "jeaye";
repo = "stdman";
rev = version;
sha256 = "sha256-/yJqKwJHonnBkP6/yQQJT3yPyYO6/nFAf4XFrgl3L0A=";
};
outputDevdoc = "out";
preConfigure = "
patchShebangs ./do_install
";
buildInputs = [ curl ];
meta = with lib; {
description = "Formatted C++17 stdlib man pages (cppreference)";
longDescription = "stdman is a tool that parses archived HTML
files from cppreference and generates groff-formatted manual
pages for Unix-based systems. The goal is to provide excellent
formatting for easy readability.";
homepage = "https://github.com/jeaye/stdman";
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.twey ];
};
}

View File

@@ -0,0 +1,29 @@
{
stdenv,
lib,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "std-man-pages";
version = "4.4.0";
src = fetchurl {
url = "mirror://gcc/libstdc++/doxygen/libstdc++-man.${version}.tar.bz2";
sha256 = "0153py77ll759jacq41dp2z2ksr08pdcfic0rwjd6pr84dk89y9v";
};
outputDevdoc = "out";
installPhase = ''
mkdir -p $out/share/man
cp -R * $out/share/man
'';
meta = with lib; {
description = "GCC C++ STD manual pages";
homepage = "https://gcc.gnu.org/";
license = with licenses; [ fdl13Plus ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
makeBinaryWrapper,
nix-update-script,
runCommand,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stdoutisatty";
version = "1.0";
src = fetchFromGitHub {
owner = "lilydjwg";
repo = "stdoutisatty";
rev = finalAttrs.version;
hash = "sha256-NyVn9cxx0rY1ridNDTqe0pzcVhdLVaPCKT4hoQkQzRs=";
};
nativeBuildInputs = [
cmake
makeBinaryWrapper
];
cmakeFlags = [
# must specify the full path to `libstdoutisatty.so` in the nix store
(lib.cmakeFeature "CMAKE_C_FLAGS" "-DLIB_FILE='\"${placeholder "out"}/lib/libstdoutisatty.so\"'")
];
passthru = {
updateScript = nix-update-script { };
tests = {
ls-color = runCommand "${finalAttrs.pname}-test-ls-color" { } ''
set -x
mkdir somedir
ln -s somedir somelink
color_auto=$(ls -1 --color=auto)
color_always=$(ls -1 --color=always)
${lib.getExe finalAttrs.finalPackage} \
ls -1 --color=auto > $out
[[ "$(cat $out)" == "$color_always" ]]
[[ "$(cat $out)" != "$color_auto" ]]
set +x
'';
};
};
meta = {
description = "Make programs think their stdout is a tty / terminal";
longDescription = ''
`stdoutisatty command` makes `command` think their stdout is a terminal,
even if it is actually being piped into another program (e.g. `less`).
This is most useful for preserving user-friendly, colored outputs.
For example, `stdoutisatty ls --color=auto | less` will always show
colored output, despite being piped into a pager.
'';
homepage = "https://github.com/lilydjwg/stdoutisatty";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ bryango ];
mainProgram = "stdoutisatty";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,40 @@
{
stdenv,
cmake,
fetchFromGitHub,
fetchpatch,
lib,
}:
let
version = "1.2.3";
in
stdenv.mkDerivation {
pname = "stduuid";
inherit version;
src = fetchFromGitHub {
owner = "mariusbancila";
repo = "stduuid";
rev = "v${version}";
hash = "sha256-MhpKv+gH3QxiaQMx5ImiQjDGrbKUFaaoBLj5Voh78vg=";
};
nativeBuildInputs = [ cmake ];
patches = [
# stduuid report version 1.0 instead of 1.2.3 for cmake's find_package to properly work
# If version is updated one day, this patch will need to be updated
(fetchpatch {
url = "https://github.com/OlivierLDff/stduuid/commit/b02c70c0a4bef2c82152503e13c9a67d6631b13d.patch";
hash = "sha256-tv4rllhngdgjXX35kcM69yXo0DXF/BQ+AUbiC1gJIU8=";
})
];
meta = {
description = "C++17 cross-platform implementation for UUIDs";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.shlevy ];
homepage = "https://github.com/mariusbancila/stduuid";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "steam-acf";
version = "0.1.0";
src = fetchFromGitHub {
owner = "chisui";
repo = "acf";
rev = "v${version}";
sha256 = "16q3md7cvdz37pqm1sda81rkjf249xbsrlpdl639r06p7f4nqlc2";
};
cargoHash = "sha256-3BbSTzFcQju0n7pwFqvrJB2sU8RM47Svi4lndlhkYmE=";
meta = with lib; {
description = "Tool to convert Steam .acf files to JSON";
homepage = "https://github.com/chisui/acf";
license = with licenses; [
mit # or
asl20
];
maintainers = with maintainers; [ chisui ];
mainProgram = "acf";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
bash,
udevCheckHook,
nix-update-script,
}:
stdenvNoCC.mkDerivation {
pname = "steam-devices-udev-rules";
version = "1.0.0.61-unstable-2025-09-26";
src = fetchFromGitHub {
owner = "ValveSoftware";
repo = "steam-devices";
rev = "d3f7cd6a955d2191800f01d6d2efb2ee196127c5";
hash = "sha256-IMrKU6zyR+oTc4Wqca8JBvxoslKUuz8peHMudfwewf0=";
};
nativeBuildInputs = [
udevCheckHook
];
doInstallCheck = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib/udev/rules.d/
cp *.rules $out/lib/udev/rules.d/
substituteInPlace $out/lib/udev/rules.d/*.rules --replace-warn "/bin/sh" "${bash}/bin/sh"
runHook postInstall
'';
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = with lib; {
description = "Udev rules list for gaming devices";
homepage = "https://github.com/ValveSoftware/steam-devices";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ azuwis ];
};
}

View File

@@ -0,0 +1,49 @@
{
fetchFromGitHub,
stdenvNoCC,
lib,
bash,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "steam-play-none";
version = "0-unstable-2022-12-15";
src = fetchFromGitHub {
owner = "Scrumplex";
repo = "steam-play-none";
rev = "42e38706eb37fdaaedbe9951d59ef44148fcacbf";
hash = "sha256-sSHLrB5TlGMKpztTnbh5oIOhcrRd+ke2OUUbiQUqoh0=";
};
buildInputs = [ bash ];
strictDeps = true;
outputs = [
"out"
"steamcompattool"
];
installPhase = ''
runHook preInstall
# Make it impossible to add to an environment. You should use the appropriate NixOS option.
# Also leave some breadcrumbs in the file.
echo "${finalAttrs.pname} should not be installed into environments. Please use programs.steam.extraCompatPackages instead." > $out
install -Dt $steamcompattool compatibilitytool.vdf toolmanifest.vdf
install -Dt $steamcompattool -m755 launch.sh
runHook postInstall
'';
meta = {
description = ''
Steam Play Compatibility Tool to run games as-is
(This is intended for use in the `programs.steam.extraCompatPackages` option only.)
'';
homepage = "https://github.com/Scrumplex/Steam-Play-None";
license = lib.licenses.cc0;
maintainers = with lib.maintainers; [
matthewcroughan
Scrumplex
];
platforms = [ "x86_64-linux" ];
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
appimageTools,
fetchurl,
}:
appimageTools.wrapType2 rec {
pname = "steam-rom-manager";
version = "2.5.30";
src = fetchurl {
url = "https://github.com/SteamGridDB/steam-rom-manager/releases/download/v${version}/Steam-ROM-Manager-${version}.AppImage";
sha256 = "sha256-2prpPNgB8EYrswYc98RRrQtHc/s9asbtACRCDyyGQqg=";
};
extraInstallCommands =
let
appimageContents = appimageTools.extract { inherit pname version src; };
in
''
install -m 444 -D ${appimageContents}/steam-rom-manager.desktop -t $out/share/applications
substituteInPlace $out/share/applications/steam-rom-manager.desktop \
--replace 'Exec=AppRun' 'Exec=steam-rom-manager'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = with lib; {
description = "App for managing ROMs in Steam";
homepage = "https://github.com/SteamGridDB/steam-rom-manager";
license = licenses.gpl3Only;
maintainers = with maintainers; [ squarepear ];
platforms = [ "x86_64-linux" ];
mainProgram = "steam-rom-manager";
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
rustPlatform,
steamcmd,
fetchFromGitHub,
steam-run,
openssl,
pkg-config,
runtimeShell,
withWine ? false,
wine,
}:
rustPlatform.buildRustPackage rec {
pname = "steam-tui";
version = "0.3.0";
src = fetchFromGitHub {
owner = "dmadisetti";
repo = "steam-tui";
rev = version;
sha256 = "sha256-3vBIpPIsh+7PjTuNNqp7e/pdciOYnzuGkjb/Eks6QJw=";
};
cargoHash = "sha256-/39MrHCdJGTBTZplQcwYk6zpaVFYHpRKHhZC1GTNysY=";
nativeBuildInputs = [
openssl
pkg-config
];
buildInputs = [ steamcmd ] ++ lib.optional withWine wine;
preFixup = ''
mv $out/bin/steam-tui $out/bin/.steam-tui-unwrapped
cat > $out/bin/steam-tui <<EOF
#!${runtimeShell}
export PATH=${steamcmd}/bin:\$PATH
exec ${steam-run}/bin/steam-run $out/bin/.steam-tui-unwrapped '\$@'
EOF
chmod +x $out/bin/steam-tui
'';
checkFlags = [ "--skip=impure" ];
PKG_CONFIG_PATH = "${openssl.dev}/lib/pkgconfig";
meta = with lib; {
description = "Rust TUI client for steamcmd";
homepage = "https://github.com/dmadisetti/steam-tui";
license = licenses.mit;
maintainers = with maintainers; [
lom
dmadisetti
];
# steam only supports that platform
platforms = [ "x86_64-linux" ];
mainProgram = "steam-tui";
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/bin_steam.sh b/bin_steam.sh
index 49f9d8a..48f4379 100755
--- a/bin_steam.sh
+++ b/bin_steam.sh
@@ -297,7 +297,7 @@ fi
# Leave a copy of the bootstrap tarball in ~/.steam so that Steam can
# re-bootstrap itself if required
if ! cmp -s "$LAUNCHSTEAMBOOTSTRAPFILE" "$LAUNCHSTEAMDIR/bootstrap.tar.xz"; then
- cp "$LAUNCHSTEAMBOOTSTRAPFILE" "$LAUNCHSTEAMDIR/bootstrap.tar.xz"
+ cp -f "$LAUNCHSTEAMBOOTSTRAPFILE" "$LAUNCHSTEAMDIR/bootstrap.tar.xz"
fi
# go to the install directory and run the client

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchurl,
bash,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "steam-unwrapped";
version = "1.0.0.85";
src = fetchurl {
# use archive url so the tarball doesn't 404 on a new release
url = "https://repo.steampowered.com/steam/archive/stable/steam_${finalAttrs.version}.tar.gz";
hash = "sha256-fy03Si+0E87VuBJRUUViGdkYolWHK0u3cBbLzPOLt/E=";
};
patches = [
# We copy the bootstrap file from the store, where it's read-only,
# so future attempts to update it with bare "cp" will fail.
# So, use "cp -f" to force an overwrite.
./force-overwrite-bootstrap.patch
];
makeFlags = [
"PREFIX=${placeholder "out"}"
];
postInstall = ''
rm $out/bin/steamdeps
# install udev rules
mkdir -p $out/etc/udev/rules.d/
cp ./subprojects/steam-devices/*.rules $out/etc/udev/rules.d/
substituteInPlace $out/etc/udev/rules.d/60-steam-input.rules \
--replace-fail "/bin/sh" "${bash}/bin/bash"
# this just installs a link, "steam.desktop -> /lib/steam/steam.desktop"
rm $out/share/applications/steam.desktop
substitute steam.desktop $out/share/applications/steam.desktop \
--replace-fail /usr/bin/steam steam
'';
passthru.updateScript = ./update.py;
meta = {
description = "Digital distribution platform";
longDescription = ''
Steam is a video game digital distribution service and storefront from Valve.
To install on NixOS, please use the option `programs.steam.enable = true`.
'';
homepage = "https://store.steampowered.com/";
license = lib.licenses.unfreeRedistributable;
maintainers = with lib.maintainers; [ jagajaga ];
teams = with lib.teams; [ steam ];
mainProgram = "steam";
};
})

View File

@@ -0,0 +1,31 @@
#!/usr/bin/env nix-shell
#!nix-shell --pure --keep NIX_PATH -i python3 -p git nix-update "python3.withPackages (ps: [ ps.beautifulsoup4 ps.requests ])"
import sys
import re
import requests
import subprocess
from bs4 import BeautifulSoup
VERSION_PATTERN = re.compile(r'^steam_(?P<ver>(\d+\.)+)tar.gz$')
found_versions = []
response = requests.get("https://repo.steampowered.com/steam/archive/stable/")
soup = BeautifulSoup (response.text, "html.parser")
for a in soup.find_all("a"):
href = a["href"]
if not href.endswith(".tar.gz"):
continue
match = VERSION_PATTERN.match(href)
if match is not None:
version = match.groupdict()["ver"][0:-1]
found_versions.append(version)
if len(found_versions) == 0:
print("Failed to find available versions!", file=sys.stderr)
sys.exit(1)
found_versions.sort()
subprocess.run(["nix-update", "--version", found_versions[-1], "steam-unwrapped"])
found_versions[0]

View File

@@ -0,0 +1,206 @@
{
lib,
steam-unwrapped,
buildFHSEnv,
writeShellScript,
extraPkgs ? pkgs: [ ], # extra packages to add to targetPkgs
extraLibraries ? pkgs: [ ], # extra packages to add to multiPkgs
extraProfile ? "", # string to append to profile
extraPreBwrapCmds ? "", # extra commands to run before calling bubblewrap
extraBwrapArgs ? [ ], # extra arguments to pass to bubblewrap (real default is at usage site)
extraArgs ? "", # arguments to always pass to steam
extraEnv ? { }, # Environment variables to pass to Steam
privateTmp ? true, # if the steam bubblewrap should isolate /tmp
}:
let
buildRuntimeEnv =
{
extraPkgs ? pkgs: [ ],
extraLibraries ? pkgs: [ ],
extraProfile ? "",
extraPreBwrapCmds ? "",
extraBwrapArgs ? [ ],
extraEnv ? { },
privateTmp ? true,
...
}@args:
buildFHSEnv (
(removeAttrs args [
"extraPkgs"
"extraLibraries"
"extraProfile"
"extraPreBwrapCmds"
"extraBwrapArgs"
"extraArgs"
"extraEnv"
])
// {
inherit privateTmp;
multiArch = true;
includeClosures = true;
# https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/distro-assumptions.md#command-line-tools
targetPkgs =
pkgs:
with pkgs;
[
bash
coreutils
file
lsb-release # not documented, called from Big Picture
pciutils # not documented, complains about lspci on startup
glibc_multi.bin
xdg-utils # calls xdg-open occasionally
xz
zenity
# Steam expects it to be /sbin specifically
(pkgs.runCommand "sbin-ldconfig" { } ''
mkdir -p $out/sbin
ln -s /bin/ldconfig $out/sbin/ldconfig
'')
# crashes on startup if it can't find libX11 locale files
(pkgs.runCommand "xorg-locale" { } ''
mkdir -p $out
ln -s ${xorg.libX11}/share $out/share
'')
]
++ extraPkgs pkgs;
# https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/distro-assumptions.md#shared-libraries
multiPkgs =
pkgs:
with pkgs;
[
glibc
libxcrypt
libGL
libdrm
libgbm
udev
libudev0-shim
libva
vulkan-loader
networkmanager
# not documented, used for network status things in Big Picture
# FIXME: figure out how to only build libnm?
libcap # not documented, required by srt-bwrap
]
++ extraLibraries pkgs;
profile = ''
# prevents log spam from SteamRT GTK trying to load host GIO modules
unset GIO_EXTRA_MODULES
# udev event notifications don't work reliably inside containers.
# SDL2 already tries to automatically detect flatpak and pressure-vessel
# and falls back to inotify-based discovery [1]. We make SDL2 do the
# same by telling it explicitly.
#
# [1] <https://github.com/libsdl-org/SDL/commit/8e2746cfb6e1f1a1da5088241a1440fd2535e321>
export SDL_JOYSTICK_DISABLE_UDEV=1
# This is needed for IME (e.g. iBus, fcitx5) to function correctly on non-CJK locales
# https://github.com/ValveSoftware/steam-for-linux/issues/781#issuecomment-2004757379
export GTK_IM_MODULE='xim'
# See https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/blob/main/docs/distro-assumptions.md#graphics-driver
export LIBGL_DRIVERS_PATH=/run/opengl-driver/lib/dri:/run/opengl-driver-32/lib/dri
export __EGL_VENDOR_LIBRARY_DIRS=/run/opengl-driver/share/glvnd/egl_vendor.d:/run/opengl-driver-32/share/glvnd/egl_vendor.d
export LIBVA_DRIVERS_PATH=/run/opengl-driver/lib/dri:/run/opengl-driver-32/lib/dri
export VDPAU_DRIVER_PATH=/run/opengl-driver/lib/vdpau:/run/opengl-driver-32/lib/vdpau
# Steam gets confused by the symlinks to bind mounts to symlinks /etc/localtime ends up being, so help it out.
# See also: https://github.com/flathub/com.valvesoftware.Steam/blob/28481f09f33c12b6ac7421d13af9ed1523c54ec4/steam_wrapper/steam_wrapper.py#L160
if [ -z ''${TZ+x} ]; then
new_TZ="$(readlink -f /etc/localtime | grep -P -o '(?<=/zoneinfo/).*$')"
if [ $? -eq 0 ]; then
export TZ="$new_TZ"
fi
fi
set -a
${lib.toShellVars extraEnv}
set +a
${extraProfile}
'';
inherit extraPreBwrapCmds;
extraBwrapArgs = [
# Steam will dump crash reports here, make those more accessible
"--bind-try /tmp/dumps /tmp/dumps"
]
++ extraBwrapArgs;
}
);
in
buildRuntimeEnv {
pname = "steam";
inherit (steam-unwrapped) version meta;
extraPkgs = pkgs: [ steam-unwrapped ] ++ extraPkgs pkgs;
inherit
extraLibraries
extraProfile
extraPreBwrapCmds
extraBwrapArgs
extraEnv
privateTmp
;
runScript = writeShellScript "steam-wrapped" ''
exec steam ${extraArgs} "$@"
'';
extraInstallCommands = ''
ln -s ${steam-unwrapped}/share $out/share
'';
passthru =
let
makeSteamRun =
package:
buildRuntimeEnv {
name = "steam-run";
extraPkgs = pkgs: package ++ extraPkgs pkgs;
inherit
extraLibraries
extraProfile
extraPreBwrapCmds
extraBwrapArgs
extraEnv
privateTmp
;
runScript = writeShellScript "steam-run" ''
if [ $# -eq 0 ]; then
echo "Usage: steam-run command-to-run args..." >&2
exit 1
fi
exec "$@"
'';
meta = {
description = "Run commands in the same FHS environment that is used for Steam";
mainProgram = "steam-run";
name = "steam-run";
license = lib.licenses.mit;
};
};
in
{
inherit buildRuntimeEnv;
run = makeSteamRun [ steam-unwrapped ];
run-free = makeSteamRun [ ];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchurl,
steam-run,
bash,
coreutils,
steamRoot ? "~/.local/share/Steam",
}:
stdenv.mkDerivation {
pname = "steamcmd";
version = "20180104"; # According to steamcmd_linux.tar.gz mtime
src = fetchurl {
url = "https://web.archive.org/web/20240521141411/https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz";
hash = "sha256-zr8ARr/QjPRdprwJSuR6o56/QVXl7eQTc7V5uPEHHnw=";
};
# The source tarball does not have a single top-level directory.
preUnpack = ''
mkdir $name
cd $name
sourceRoot=.
'';
buildInputs = [
bash
steam-run
];
dontBuild = true;
installPhase = ''
mkdir -p $out/share/steamcmd/linux32
install -Dm755 steamcmd.sh $out/share/steamcmd/steamcmd.sh
install -Dm755 linux32/* $out/share/steamcmd/linux32
mkdir -p $out/bin
substitute ${./steamcmd.sh} $out/bin/steamcmd \
--subst-var out \
--subst-var-by coreutils ${coreutils} \
--subst-var-by steamRoot "${steamRoot}" \
--subst-var-by steamRun ${steam-run}
chmod 0755 $out/bin/steamcmd
'';
meta = with lib; {
homepage = "https://developer.valvesoftware.com/wiki/SteamCMD";
description = "Steam command-line tools";
mainProgram = "steamcmd";
platforms = platforms.linux;
license = licenses.unfreeRedistributable;
maintainers = with maintainers; [ tadfisher ];
};
}

View File

@@ -0,0 +1,27 @@
#!@bash@/bin/bash -e
# Always run steamcmd in the user's Steam root.
STEAMROOT=@steamRoot@
# Add coreutils to PATH for mkdir, ln and cp used below
PATH=$PATH${PATH:+:}@coreutils@/bin
# Create a facsimile Steam root if it doesn't exist.
if [ ! -e "$STEAMROOT" ]; then
mkdir -p "$STEAMROOT"/{appcache,config,logs,Steamapps/common}
mkdir -p ~/.steam
ln -sf "$STEAMROOT" ~/.steam/root
ln -sf "$STEAMROOT" ~/.steam/steam
fi
# Copy the system steamcmd install to the Steam root. If we don't do
# this, steamcmd assumes the path to `steamcmd` is the Steam root.
# Note that symlinks don't work here.
if [ ! -e "$STEAMROOT/steamcmd.sh" ]; then
mkdir -p "$STEAMROOT/linux32"
# steamcmd.sh will replace these on first use
cp @out@/share/steamcmd/steamcmd.sh "$STEAMROOT/."
cp @out@/share/steamcmd/linux32/* "$STEAMROOT/linux32/."
fi
@steamRun@/bin/steam-run "$STEAMROOT/steamcmd.sh" "$@"

View File

@@ -0,0 +1,42 @@
{
installShellFiles,
lib,
rustPlatform,
fetchFromGitHub,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "steamguard-cli";
version = "0.17.1";
src = fetchFromGitHub {
owner = "dyc3";
repo = "steamguard-cli";
rev = "v${version}";
hash = "sha256-IoWLPpFPQC1QU1EgJSiiAQqMcDQnHa5WRLiya3WN+6w=";
};
cargoHash = "sha256-7csGZp5dAz0j7pTxeex/yrgzNFU7Qz3zNcZ/K4dV7GE=";
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd steamguard \
--bash <($out/bin/steamguard completion --shell bash) \
--fish <($out/bin/steamguard completion --shell fish) \
--zsh <($out/bin/steamguard completion --shell zsh) \
'';
meta = {
changelog = "https://github.com/dyc3/steamguard-cli/releases/tag/v${version}";
description = "Linux utility for generating 2FA codes for Steam and managing Steam trade confirmations";
homepage = "https://github.com/dyc3/steamguard-cli";
license = with lib.licenses; [ gpl3Only ];
mainProgram = "steamguard";
maintainers = with lib.maintainers; [
surfaceflinger
sigmasquadron
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,138 @@
{
lib,
fetchFromGitHub,
fetchFromGitLab,
python3,
copyDesktopItems,
makeDesktopItem,
pkg-config,
SDL2,
}:
let
# steamos-devkit requires a build of the unreleased pyimgui 2.0 branch, move to pythonPackages when 2.0 is released.
pyimgui = python3.pkgs.buildPythonPackage {
pname = "pyimgui";
version = "2.0.0";
format = "setuptools";
src = fetchFromGitHub {
owner = "pyimgui";
repo = "pyimgui";
rev = "2.0.0";
fetchSubmodules = true;
sha256 = "sha256-sw/bLTdrnPhBhrnk5yyXCbEK4kMo+PdEvoMJ9aaZbsE=";
};
nativeBuildInputs = with python3.pkgs; [
cython_0
pkg-config
SDL2
];
propagatedBuildInputs = with python3.pkgs; [
click
pyopengl
pysdl2
];
# Requires OpenGL acceleration
doCheck = false;
pythonImportsCheck = [ "imgui" ];
};
steamos-devkit-script = ''
#!${python3.interpreter}
import os
# Change the cwd to avoid imgui using cwd which often is ~ to store the state, use the same location as the settings
path = os.path.expanduser(os.path.join("~", ".devkit-client-gui"))
os.makedirs(path, exist_ok=True)
os.chdir(path)
# Workaround to get pysdl to work on wayland, remove when https://gitlab.steamos.cloud/devkit/steamos-devkit/-/issues/1 is solved.
if os.environ.get("XDG_SESSION_TYPE") == "wayland":
os.environ["SDL_VIDEODRIVER"] = "wayland"
import devkit_client.gui2
devkit_client.gui2.main()
'';
in
python3.pkgs.buildPythonPackage rec {
pname = "steamos-devkit";
version = "0.20240216.0";
format = "setuptools";
src = fetchFromGitLab {
domain = "gitlab.steamos.cloud";
owner = "devkit";
repo = "steamos-devkit";
rev = "v${version}";
sha256 = "sha256-eOtESkGMIjcijAFITOcYKPsXH6xH/Xcj9D+OItMqebM=";
};
propagatedBuildInputs = with python3.pkgs; [
appdirs
bcrypt
cffi
cryptography
idna
ifaddr
netifaces
numpy
paramiko
pycparser
pyimgui
pynacl
pysdl2
signalslot
six
];
nativeBuildInputs = [
copyDesktopItems
];
postUnpack = ''
# Find the absolute source root to link correctly to the previous root
prevRoot=$(realpath $sourceRoot)
# Update the source root to the devkit_client package
sourceRoot="$sourceRoot/client"
# Link the setup script into the new source root
ln -s $prevRoot/setup/shiv-linux-setup.py $sourceRoot/setup.py
'';
postInstall = ''
mkdir -p $out/bin
# These are various assets like scripts that steamos-devkit will copy to the remote device
cp -R ./devkit-utils $out/${python3.sitePackages}/devkit-utils
# writeScript + symlink will be ignored by wrapPythonPrograms
# Copying it is undesirable too, just write it directly to a script instead
cat << EOF > $out/bin/steamos-devkit
${steamos-devkit-script}
EOF
chmod +x $out/bin/steamos-devkit
'';
# There are no checks for steamos-devkit
doCheck = false;
pythonImportsCheck = [ "devkit_client" ];
desktopItems = [
(makeDesktopItem {
name = "SteamOS-Devkit";
exec = "steamos-devkit";
desktopName = "SteamOS Devkit Client";
})
];
meta = with lib; {
description = "SteamOS Devkit Client";
mainProgram = "steamos-devkit";
homepage = "https://gitlab.steamos.cloud/devkit/steamos-devkit";
license = licenses.mit;
maintainers = with maintainers; [ myaats ];
};
}

View File

@@ -0,0 +1,92 @@
{
buildGoModule,
fetchFromGitHub,
installShellFiles,
lib,
makeWrapper,
nix-update-script,
steampipe,
testers,
}:
buildGoModule rec {
pname = "steampipe";
version = "2.2.0";
env.CGO_ENABLED = 0;
src = fetchFromGitHub {
owner = "turbot";
repo = "steampipe";
tag = "v${version}";
hash = "sha256-bYnwtGeFOtUfYzlx0o0jtfuyeItXU9LiO0fJy8UGv6k=";
};
vendorHash = "sha256-VHAbMgBISWWGhZBRl5JA0gytRSSdaFMCJUzMxmoNtPc=";
proxyVendor = true;
postPatch = ''
# Patch test that relies on looking up homedir in user struct to prefer ~
substituteInPlace pkg/steampipeconfig/shared_test.go \
--replace-fail 'filehelpers "github.com/turbot/go-kit/files"' "" \
--replace-fail 'app_specific.InstallDir, _ = filehelpers.Tildefy("~/.steampipe")' 'app_specific.InstallDir = "~/.steampipe"';
'';
nativeBuildInputs = [
installShellFiles
makeWrapper
];
ldflags = [
"-s"
"-w"
"-X main.version=${version}"
"-X main.commit=${src.rev}"
"-X main.date=unknown"
"-X main.builtBy=nixpkgs"
];
doCheck = true;
checkFlags =
let
skippedTests = [
# panic: could not create backups directory: mkdir /var/empty/.steampipe: operation not permitted
"TestTrimBackups"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
postInstall = ''
wrapProgram $out/bin/steampipe \
--set-default STEAMPIPE_UPDATE_CHECK false \
--set-default STEAMPIPE_TELEMETRY none
INSTALL_DIR=$(mktemp -d)
installShellCompletion --cmd steampipe \
--bash <($out/bin/steampipe --install-dir $INSTALL_DIR completion bash) \
--fish <($out/bin/steampipe --install-dir $INSTALL_DIR completion fish) \
--zsh <($out/bin/steampipe --install-dir $INSTALL_DIR completion zsh)
'';
passthru = {
tests.version = testers.testVersion {
command = "${lib.getExe steampipe} --version";
package = steampipe;
version = "v${version}";
};
updateScript = nix-update-script { };
};
meta = {
changelog = "https://github.com/turbot/steampipe/blob/v${version}/CHANGELOG.md";
description = "Dynamically query your cloud, code, logs & more with SQL";
homepage = "https://steampipe.io/";
license = lib.licenses.agpl3Only;
mainProgram = "steampipe";
maintainers = with lib.maintainers; [
hardselius
anthonyroussel
];
};
}

View File

@@ -0,0 +1,120 @@
{
bash,
fetchFromGitHub,
gawk,
git,
lib,
procps,
stdenvNoCC,
unixtools,
unstableGitUpdater,
unzip,
usbutils,
util-linux,
wget,
writeShellApplication,
xdotool,
xorg,
yad,
}:
stdenvNoCC.mkDerivation {
pname = "steamtinkerlaunch";
version = "12.12-unstable-2025-07-14";
src = fetchFromGitHub {
owner = "sonic2kk";
repo = "steamtinkerlaunch";
rev = "8550ab26a712b7f5f6d0947070181446b9de61fd";
hash = "sha256-mCcxdm8odHvTt4aP58RHY6NkaUMmMbQesUtY6dvIvOc=";
};
passthru.updateScript = unstableGitUpdater {
tagPrefix = "v";
};
outputs = [
"out"
"steamcompattool"
];
installFlags = [ "PREFIX=\${out}" ];
nativeBuildInputs =
let
# We need a `steam` command in order to install the compat tool
fakeSteam = writeShellApplication {
name = "steam";
text = "exit 0";
};
in
[
fakeSteam
];
postInstall =
let
# We (ab)use writeShellApplication to produce a header for a shell script
# here in order to add the runtimePath to the original script. We cannot
# wrap here as that always corrupts $0 in bash scripts which STL uses to
# install its compat tool.
header = writeShellApplication {
runtimeInputs = [
bash
gawk
git
procps
unixtools.xxd
unzip
usbutils
util-linux
wget
xdotool
xorg.xprop
xorg.xrandr
xorg.xwininfo
yad
];
name = "stl-head";
text = "";
bashOptions = [ ];
};
fakeYad = writeShellApplication {
name = "yad";
text = "echo ${yad.version} FAKE";
};
in
''
cp $out/bin/steamtinkerlaunch $TMPDIR/steamtinkerlaunch
install ${lib.getExe header} -T $out/bin/steamtinkerlaunch
tail -n +2 $TMPDIR/steamtinkerlaunch >> $out/bin/steamtinkerlaunch
# Create a fake steam dir, it checks this and reads a few values
steamdir=$TMPDIR/.local/share/Steam/
mkdir -p $steamdir/config/
echo \"path\" \"$steamdir\" > $steamdir/config/config.vdf
mkdir $TMPDIR/.steam/
ln -s $steamdir $TMPDIR/.steam/steam
cp -a $out/bin/steamtinkerlaunch $TMPDIR/steamtinkerlaunch
# yad cannot print its version without a graphical session https://github.com/v1cont/yad/issues/277
substituteInPlace $TMPDIR/steamtinkerlaunch --replace-fail ${yad} ${fakeYad}
HOME=$TMPDIR $TMPDIR/steamtinkerlaunch compat add
cp -a $steamdir/compatibilitytools.d/SteamTinkerLaunch $steamcompattool
# It creates this symlink but it points to $TMPDIR
ln -sfn $out/bin/steamtinkerlaunch $steamcompattool/
'';
meta = with lib; {
description = "Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs";
mainProgram = "steamtinkerlaunch";
homepage = "https://github.com/sonic2kk/steamtinkerlaunch";
license = licenses.gpl3;
maintainers = with maintainers; [
urandom
surfaceflinger
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,26 @@
From 5f144d5d26ea0dd1754ed25a583ebafa01ecbb4b Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Sun, 3 Aug 2025 20:06:49 +0200
Subject: [PATCH] src/common/logger.h: Add missing methods under NDEBUG
---
src/common/logger.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/common/logger.h b/src/common/logger.h
index 0901205..259f058 100644
--- a/src/common/logger.h
+++ b/src/common/logger.h
@@ -81,6 +81,9 @@ public:
LoggerStream& getStream(int level) { return stream; }
void debug(...) {}
+ void warn(...) {}
+
+ bool isDebugEnabled() { return false; }
};
// Bogus level numbers; I don't know if these are compatible with
--
2.50.1

View File

@@ -0,0 +1,80 @@
{
lib,
stdenv,
fetchFromGitLab,
bison,
cmake,
flex,
arpa2cm,
arpa2common,
catch2,
log4cpp,
openldap,
sqlite,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "steamworks";
version = "0.97.2";
src = fetchFromGitLab {
owner = "arpa2";
repo = "steamworks";
tag = "v${finalAttrs.version}";
hash = "sha256-hD1nTyv/t7MQdopqivfSE0o4Qk1ymG8zQVg56lY+t9o=";
};
patches = [
# https://gitlab.com/arpa2/steamworks/-/merge_requests/13
./1001-Add-missing-logger-methods.patch
];
postPatch = ''
# src/common/logger.h:254:63: error: 'uint8_t' does not name a type
# https://gitlab.com/arpa2/steamworks/-/merge_requests/11
sed -i "40i #include <cstdint>" src/common/logger.h
# ld: cannot find -lLog4cpp: No such file or directory
# https://gitlab.com/arpa2/steamworks/-/merge_requests/12
substituteInPlace src/common/CMakeLists.txt \
--replace-fail 'Catch2::Catch2 Log4cpp' 'Catch2::Catch2 Log4cpp::Log4cpp'
'';
strictDeps = true;
nativeBuildInputs = [
bison
cmake
flex
];
buildInputs = [
arpa2cm
arpa2common
flex
log4cpp
openldap
sqlite
];
checkInputs = [
catch2
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "Configuration information distributed over LDAP in near realtime";
homepage = "https://gitlab.com/arpa2/steamworks";
changelog = "https://gitlab.com/arpa2/steamworks/-/blob/v${finalAttrs.version}/CHANGES";
license = lib.licenses.bsd2;
maintainers = [ lib.maintainers.ethancedwards8 ];
teams = [ lib.teams.ngi ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,50 @@
{
lib,
pkgs,
python3Packages,
fetchFromGitHub,
nixosTests,
}:
python3Packages.buildPythonApplication rec {
pname = "steck";
version = "0.8.0";
pyproject = true;
src = fetchFromGitHub {
owner = "supakeen";
repo = "steck";
tag = "v${version}";
hash = "sha256-5Spops8ERQ7TgFYH7n+c4hKdIQfjjujKaGhmhfAszgQ=";
};
build-system = with python3Packages; [
poetry-core
];
dependencies = with python3Packages; [
pkgs.git
appdirs
click
python-magic
requests
termcolor
toml
];
pythonRelaxDeps = [ "termcolor" ];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
];
passthru.tests = nixosTests.pinnwand;
meta = {
homepage = "https://github.com/supakeen/steck";
license = lib.licenses.mit;
description = "Client for pinnwand pastebin";
mainProgram = "steck";
maintainers = with lib.maintainers; [ hexa ];
};
}

View File

@@ -0,0 +1,118 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
curl,
pkg-config,
makeBinaryWrapper,
installShellFiles,
libgit2,
oniguruma,
openssl,
sqlite,
zlib,
nix-update-script,
includeLSP ? true,
includeForge ? true,
}:
rustPlatform.buildRustPackage {
pname = "steel";
version = "0-unstable-2025-10-07";
src = fetchFromGitHub {
owner = "mattwparas";
repo = "steel";
rev = "f18298647e727f9f79f312511bbf4e8e397998bb";
hash = "sha256-vXSwAfJVjMuz2O/FSF+ijzTK8TYVY4a0Zuzrnqhpja8=";
};
cargoHash = "sha256-CrmQhOfh7SQ5GvBywmYkfU6wMlgZq2x61+T+mIeQ7z4=";
nativeBuildInputs = [
curl
makeBinaryWrapper
pkg-config
rustPlatform.bindgenHook
installShellFiles
];
buildInputs = [
curl
libgit2
oniguruma
openssl
sqlite
zlib
];
postPatch = ''
rm .cargo/config.toml
'';
cargoBuildFlags = [
"--package"
"steel-interpreter"
"--package"
"cargo-steel-lib"
]
++ lib.optionals includeLSP [
"--package"
"steel-language-server"
]
++ lib.optionals includeForge [
"--package"
"steel-forge"
];
# Tests are disabled since they always fail when building with Nix
doCheck = false;
postInstall = ''
mkdir -p $out/lib/steel
substituteInPlace crates/forge/installer/download.scm \
--replace-fail '"cargo-steel-lib"' '"$out/bin/cargo-steel-lib"'
pushd cogs
$out/bin/steel install.scm
popd
mv $out/lib/steel/bin/repl-connect $out/bin
rm -rf $out/lib/steel/bin
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd steel \
--bash <($out/bin/steel completions bash) \
--fish <($out/bin/steel completions fish) \
--zsh <($out/bin/steel completions zsh)
'';
postFixup = ''
wrapProgram $out/bin/steel --set-default STEEL_HOME "$out/lib/steel"
'';
env = {
OPENSSL_NO_VENDOR = true;
RUSTONIG_SYSTEM_LIBONIG = true;
STEEL_HOME = "${placeholder "out"}/lib/steel";
};
passthru.updateScript = nix-update-script {
extraArgs = [ "--version=branch" ];
};
meta = {
description = "Embedded scheme interpreter in Rust";
homepage = "https://github.com/mattwparas/steel";
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [ HeitorAugustoLN ];
mainProgram = "steel";
platforms = lib.platforms.unix;
sourceProvenance = [ lib.sourceTypes.fromSource ];
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
libjpeg,
libmcrypt,
libmhash,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "steghide";
version = "0.5.1.1";
src = fetchFromGitHub {
owner = "museoa";
repo = "steghide";
rev = finalAttrs.version;
hash = "sha256-uUXEipIUfu9AbG7Ekz+25JkWSEGzqA7sJHZqezLzUto=";
};
nativeBuildInputs = [
autoreconfHook
];
buildInputs = [
libjpeg
libmcrypt
libmhash
zlib
];
postPatch = ''
cd src
'';
# std::binary_function and std::unary_function has been removed in c++17
makeFlags = lib.optionals stdenv.cc.isClang [
"CXXFLAGS=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"
];
meta = with lib; {
homepage = "https://github.com/museoa/steghide";
description = "Open source steganography program";
license = licenses.gpl3Plus;
maintainers = [ ];
platforms = with platforms; unix;
mainProgram = "steghide";
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
libjpeg,
libmcrypt,
libmhash,
libtool,
zlib,
}:
stdenv.mkDerivation rec {
pname = "stegseek";
version = "0.6";
src = fetchFromGitHub {
owner = "RickdeJager";
repo = "stegseek";
rev = "v${version}";
sha256 = "sha256-B5oJffYOYfsH0YRq/Bq0ciIlCsCONyScFBjP7a1lIzo=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
libjpeg
libmcrypt
libmhash
libtool
zlib
];
# tests get stuck on aarch64-linux
doCheck = stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isLinux;
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
description = "Tool to crack steganography";
longDescription = ''
Stegseek is a lightning fast steghide cracker that can be
used to extract hidden data from files.
'';
homepage = "https://github.com/RickdeJager/stegseek";
license = with licenses; [ gpl2Only ];
maintainers = with maintainers; [ fab ];
mainProgram = "stegseek";
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenvNoCC,
fetchurl,
jre,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "stegsolve";
version = "1.3";
src = fetchurl {
# No versioned binary is published :(
url = "https://web.archive.org/web/20230319054116if_/http://www.caesum.com/handbook/Stegsolve.jar";
sha256 = "0np5zb28sg6yzkp1vic80pm8iiaamvjpbf5dxmi9kwvqcrh4jyq0";
};
dontUnpack = true;
desktopItems = [
(makeDesktopItem {
type = "Application";
name = "stegsolve";
desktopName = "Stegsolve";
comment = "A steganographic image analyzer, solver and data extractor for challanges";
exec = "stegsolve";
categories = [ "Graphics" ];
})
];
nativeBuildInputs = [
makeWrapper
copyDesktopItems
];
installPhase = ''
runHook preInstall
export JAR=$out/share/java/stegsolve/stegsolve.jar
install -D $src $JAR
makeWrapper ${jre}/bin/java $out/bin/stegsolve \
--add-flags "-jar $JAR"
runHook postInstall
'';
meta = with lib; {
description = "Steganographic image analyzer, solver and data extractor for challanges";
homepage = "https://www.wechall.net/forum/show/thread/527/Stegsolve_1.3/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = {
fullName = "Cronos License";
url = "http://www.caesum.com/legal.php";
free = false;
redistributable = true;
};
maintainers = with maintainers; [ emilytrau ];
platforms = platforms.all;
mainProgram = "stegsolve";
};
})

View File

@@ -0,0 +1,53 @@
{
lib,
SDL2,
fetchFromGitHub,
sqlite,
pkg-config,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stella";
version = "7.0c";
src = fetchFromGitHub {
owner = "stella-emu";
repo = "stella";
rev = finalAttrs.version;
hash = "sha256-AbZBBg4P0qnB+mZpiG8/kHixBfkKQptyLrF4lwgRr/Y=";
};
nativeBuildInputs = [
SDL2
pkg-config
];
buildInputs = [
SDL2
sqlite
];
strictDeps = true;
meta = {
homepage = "https://stella-emu.github.io/";
description = "Open-source Atari 2600 VCS emulator";
longDescription = ''
Stella is a multi-platform Atari 2600 VCS emulator released under the GNU
General Public License (GPL). Stella was originally developed for Linux by
Bradford W. Mott, and is currently maintained by Stephen Anthony. Since
its original release several people have joined the development team to
port Stella to other operating systems such as AcornOS, AmigaOS, DOS,
FreeBSD, IRIX, Linux, OS/2, MacOS, Unix, and Windows. The development team
is working hard to perfect the emulator and we hope you enjoy our effort.
As of its 3.5 release, Stella is officially donationware.
'';
changelog = "https://github.com/stella-emu/stella/releases/tag/${finalAttrs.src.rev}";
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "stella";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,95 @@
{
autoconf,
automake,
bison,
fetchFromGitHub,
fetchpatch,
flex,
gitMinimal,
lib,
libpq,
libtool,
libunwind,
pkg-config,
ripgrep,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stellar-core";
version = "19.14.0";
src = fetchFromGitHub {
owner = "stellar";
repo = "stellar-core";
tag = "v${finalAttrs.version}";
hash = "sha256-lxBn/T01Tsa7tid3mRJUigUwv9d3BAPZhV9Mp1lywBU=";
fetchSubmodules = true;
};
patches = [
# Fix gcc-13 build failure due to missing <stdexcept> include
# https://github.com/stellar/medida/pull/34
(fetchpatch {
name = "gcc-13-p1.patch";
url = "https://github.com/stellar/medida/commit/f91354b0055de939779d392999975d611b1b1ad5.patch";
stripLen = 1;
extraPrefix = "lib/libmedida/";
hash = "sha256-iVeSUY5Rcy62apIKJdbcHGgxAxpQCkygf85oSjbTTXU=";
})
(fetchpatch {
name = "gcc-13-p2.patch";
url = "https://github.com/stellar/stellar-core/commit/477b3135281b629554cabaeacfcdbcdc170aa335.patch";
hash = "sha256-UVRcAIA5LEaCn16lWfhg19UU7b/apigzTsfPROLZtYg=";
})
];
nativeBuildInputs = [
automake
autoconf
gitMinimal
libtool
pkg-config
ripgrep
];
buildInputs = [
libunwind
];
propagatedBuildInputs = [
bison
flex
libpq
];
enableParallelBuilding = true;
preConfigure = ''
# Due to https://github.com/NixOS/nixpkgs/issues/8567 we cannot rely on
# having the .git directory present, so directly provide the version
substituteInPlace src/Makefile.am --replace '$$vers' 'stellar-core ${finalAttrs.version}';
# Everything needs to be staged in git because the build uses
# `git ls-files` to search for source files to compile.
git init
git add .
./autogen.sh
'';
meta = {
description = "Implements the Stellar Consensus Protocol, a federated consensus protocol";
homepage = "https://www.stellar.org/";
license = lib.licenses.asl20;
longDescription = ''
Stellar-core is the backbone of the Stellar network. It maintains a
local copy of the ledger, communicating and staying in sync with other
instances of stellar-core on the network. Optionally, stellar-core can
store historical records of the ledger and participate in consensus.
'';
maintainers = [ ];
platforms = lib.platforms.linux;
mainProgram = "stellar-core";
};
})

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
qt6,
cfitsio,
gsl,
wcslib,
withTester ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stellarsolver";
version = "2.7";
src = fetchFromGitHub {
owner = "rlancaste";
repo = "stellarsolver";
rev = finalAttrs.version;
sha256 = "sha256-tASjV5MZ1ClumZqu/R61b6XE9CGTuVFfpxyC89fwN9o=";
};
nativeBuildInputs = [ cmake ];
dontWrapQtApps = true;
buildInputs = [
qt6.qtbase
cfitsio
gsl
wcslib
];
cmakeFlags = [
(lib.strings.cmakeBool "BUILD_TESTER" withTester)
(lib.strings.cmakeBool "USE_QT5" false)
];
meta = with lib; {
homepage = "https://github.com/rlancaste/stellarsolver";
description = "Astrometric plate solving library";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
returntoreality
];
platforms = platforms.unix;
};
})

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
autoreconfHook,
pkg-config,
pandoc,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "stenc";
version = "2.0.1";
outputs = [
"out"
"man"
];
src = fetchFromGitHub {
owner = "scsitape";
repo = "stenc";
tag = version;
sha256 = "sha256-M7b+T0mm2QTP1LqqjdKV/NWZ60DrueFEnN1unwCOeH4=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
pandoc
installShellFiles
];
doCheck = true;
postInstall = ''
installShellCompletion --bash bash-completion/stenc
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "SCSI Tape Encryption Manager";
mainProgram = "stenc";
homepage = "https://github.com/scsitape/stenc";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ woffs ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,88 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
buildGoModule,
coreutils,
pcsclite,
pkg-config,
hsmSupport ? true,
nixosTests,
}:
buildGoModule rec {
pname = "step-ca";
version = "0.28.4";
src = fetchFromGitHub {
owner = "smallstep";
repo = "certificates";
tag = "v${version}";
# Source uses git export-subst and isn't reproducible when fetching as git archive,
# see https://github.com/smallstep/certificates/blob/6a1250131284dce4aa66c0e0e3f7a3202dd56ad0/.gitattributes.
# Use forceFetchGit to fetch the source as git repo, as fetchGit isn't effected,
# see https://github.com/NixOS/nixpkgs/issues/84312#issuecomment-2475948960.
forceFetchGit = true;
hash = "sha256-ZIpsSNdQVkelo5b3H03N8qToHU7z+lalAE7Ur6m2YwY=";
};
patches = [
# fix broken test TestHandler_RevokeCert
# https://github.com/smallstep/certificates/pull/2370
# TODO: remove at next release
(fetchpatch2 {
url = "https://github.com/smallstep/certificates/commit/b7e59c97f3b8a95a24153aeb85959118953f2bb4.patch?full_index=1";
hash = "sha256-GKGKUj4hpS4jo6sMvUhnD3BeE+f5vnxY5tK0a2pwpNM=";
})
];
vendorHash = "sha256-gGPrrl5J8UrjUpof2DaSs1fAQsMSsyAMlC67h5V75+k=";
ldflags = [
"-w"
"-X main.Version=${version}"
];
nativeBuildInputs = lib.optionals hsmSupport [ pkg-config ];
buildInputs = lib.optionals (hsmSupport && stdenv.hostPlatform.isLinux) [ pcsclite ];
postPatch = ''
substituteInPlace authority/http_client_test.go --replace-fail 't.Run("SystemCertPool", func(t *testing.T) {' 't.Skip("SystemCertPool", func(t *testing.T) {'
substituteInPlace systemd/step-ca.service --replace "/bin/kill" "${coreutils}/bin/kill"
'';
preBuild = ''
${lib.optionalString (!hsmSupport) "export CGO_ENABLED=0"}
'';
postInstall = ''
install -Dm444 -t $out/lib/systemd/system systemd/step-ca.service
'';
preCheck = ''
export HOME=$(mktemp -d)
'';
# Tests start http servers which need to bind to local addresses:
# panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
__darwinAllowLocalNetworking = true;
# Tests need to run in a reproducible order, otherwise they run unreliably on
# (at least) x86_64-linux.
checkFlags = [ "-p 1" ];
passthru.tests.step-ca = nixosTests.step-ca;
meta = {
description = "Private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
homepage = "https://smallstep.com/certificates/";
changelog = "https://github.com/smallstep/certificates/releases/tag/v${version}";
license = lib.licenses.asl20;
mainProgram = "step-ca";
maintainers = with lib.maintainers; [
cmcdragonkai
techknowlogick
];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
let
version = "0.28.6";
in
buildGoModule {
pname = "step-cli";
inherit version;
src = fetchFromGitHub {
owner = "smallstep";
repo = "cli";
tag = "v${version}";
hash = "sha256-9tw/d6n6tzhBhBqizDG1dGhj8se9GF2DtrfYwwhvsLs=";
# this file change depending on git branch status (via .gitattributes)
# https://github.com/NixOS/nixpkgs/issues/84312
postFetch = ''
rm -f $out/.VERSION
'';
};
ldflags = [
"-w"
"-s"
"-X=main.Version=${version}"
];
preCheck = ''
# Tries to connect to smallstep.com
rm command/certificate/remote_test.go
'';
vendorHash = "sha256-+pHc2uBgQwMkJ7BTgHGHDPgfBpLlN0Yxf+6Enhb7cys=";
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd step \
--bash <($out/bin/step completion bash) \
--zsh <($out/bin/step completion zsh) \
--fish <($out/bin/step completion fish)
'';
meta = {
description = "Zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc";
homepage = "https://smallstep.com/cli/";
changelog = "https://github.com/smallstep/cli/blob/v${version}/CHANGELOG.md";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ isabelroses ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "step";
};
}

View File

@@ -0,0 +1,54 @@
{
stdenv,
lib,
buildGoModule,
fetchFromGitHub,
pkg-config,
pcsclite,
softhsm,
opensc,
yubihsm-shell,
}:
buildGoModule rec {
pname = "step-kms-plugin";
version = "0.15.1";
src = fetchFromGitHub {
owner = "smallstep";
repo = "step-kms-plugin";
rev = "v${version}";
hash = "sha256-Evi5rXdb/2WDlIUXJcQjQ0d1Zrfg1x00tFonlNmLi6E=";
};
vendorHash = "sha256-CxX4tQRBPtza1PAVeidp+KNeYxIh5y1tJ+RgcBKdORs=";
proxyVendor = true;
nativeBuildInputs = [
pkg-config
];
buildInputs = [
opensc
pcsclite
softhsm
yubihsm-shell
];
ldflags = [
"-w"
"-s"
"-X github.com/smallstep/step-kms-plugin/cmd.Version=${version}"
];
meta = with lib; {
description = "Step plugin to manage keys and certificates on cloud KMSs and HSMs";
homepage = "https://smallstep.com/cli/";
license = licenses.asl20;
maintainers = with maintainers; [ qbit ];
mainProgram = "step-kms-plugin";
# can't find pcsclite header files
broken = stdenv.hostPlatform.isDarwin;
};
}

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