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,60 @@
{
lib,
stdenv,
fetchFromGitHub,
bzip2,
libdivsufsort,
jsoncpp,
openssl,
mpfr,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sp800-90b-entropyassessment";
version = "1.1.8";
src = fetchFromGitHub {
owner = "usnistgov";
repo = "SP800-90B_EntropyAssessment";
rev = "v${finalAttrs.version}";
hash = "sha256-qGJqL77IOuVx8jKDdOk4YkLPbggfn+TQtpdcYEu4hC8=";
};
buildInputs = [
bzip2
libdivsufsort
jsoncpp
openssl
mpfr
];
postPatch = ''
substituteInPlace Makefile \
--replace "-march=native" ""
'';
sourceRoot = "${finalAttrs.src.name}/cpp";
makeFlags = [
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
"ARCH=${stdenv.hostPlatform.linuxArch}"
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ea_* $out/bin
runHook postInstall
'';
meta = {
homepage = "https://github.com/usnistgov/SP800-90B_EntropyAssessment";
description = "Implementation of min-entropy assessment methods included in Special Publication 800-90B";
platforms = lib.platforms.linux;
license = lib.licenses.nistSoftware;
maintainers = with lib.maintainers; [
orichter
thillux
];
};
})

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchzip,
cmake,
SDL2,
SDL2_mixer,
unrar,
}:
let
assets = fetchzip {
url = "https://archive.org/download/SpaceCadet_Plus95/Space_Cadet.rar";
hash = "sha256-fC+zsR8BY6vXpUkVd6i1jF0IZZxVKVvNi6VWCKT+pA4=";
stripRoot = false;
nativeBuildInputs = [ unrar ];
};
darwinApp = "$out/Applications/SpaceCadetPinball.app/Contents";
assetsDest =
if stdenv.hostPlatform.isDarwin then darwinApp + "/Resources" else "$out/share/SpaceCadetPinball";
in
stdenv.mkDerivation rec {
pname = "SpaceCadetPinball";
version = "2.1.0";
src = fetchFromGitHub {
owner = "k4zmu2a";
repo = "SpaceCadetPinball";
rev = "Release_${version}";
hash = "sha256-W2P7Txv3RtmKhQ5c0+b4ghf+OMsN+ydUZt+6tB+LClM=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
SDL2
SDL2_mixer
];
postPatch = ''
# Change the hardcoded FHS assets path
substituteInPlace SpaceCadetPinball/pch.h \
--replace-fail /usr/share ${placeholder "out"}/share
# Disable building a universal binary on Darwin, otherwise the cc wrapper passing -arch breaks the build
substituteInPlace CMakeLists.txt \
--replace-fail "arm64;x86_64" ""
'';
# Darwin needs a custom installPhase since it is excluded from the cmake install
# https://github.com/k4zmu2a/SpaceCadetPinball/blob/0f88e43ba261bc21fa5c3ef9d44969a2a079d0de/CMakeLists.txt#L221
# This builds a bundle similar to what upstream's build script produces
# https://github.com/k4zmu2a/SpaceCadetPinball/blob/cb9b7b886244a27773f66b0b19fdc2998392565e/build-mac-app.sh
installPhase = lib.optionalString stdenv.hostPlatform.isDarwin ''
runHook preInstall
install -D ../bin/SpaceCadetPinball -t ${darwinApp}/MacOS
install -Dm644 ../Platform/macOS/SpaceCadetPinball.icns -t ${darwinApp}/Resources
substitute ../Platform/macOS/Info.plist ${darwinApp}/Info.plist \
--replace-fail CHANGEME_SW_VERSION ${version}
echo -n "APPL????" > ${darwinApp}/PkgInfo
runHook postInstall
'';
# The game uses SDL_GetBasePath to find the assets directory.
# On Darwin, this will return Resources/ inside the bundle,
# on other platforms, the fallback path the game checks is used instead.
postInstall = ''
install -Dm644 ${assets}/*.{DAT,DOC,MID,BMP,INF} \
${assets}/Sounds/*.WAV -t ${assetsDest}
'';
meta = {
description = "Reverse engineering of 3D Pinball for Windows Space Cadet, a game bundled with Windows";
homepage = "https://github.com/k4zmu2a/SpaceCadetPinball";
# The assets are unfree while the code is labeled as MIT
license = with lib.licenses; [
unfree
mit
];
maintainers = with lib.maintainers; [
hqurve
nadiaholmquist
];
platforms = lib.platforms.all;
mainProgram = "SpaceCadetPinball";
};
}

View File

@@ -0,0 +1,402 @@
[
{
"pname": "Avalonia",
"version": "11.2.4",
"hash": "sha256-CcdWUxqd43A4KeY1K4T5M6R1M0zuwdwyd5Qh/BAlNT4="
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.22045.20230930",
"hash": "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc="
},
{
"pname": "Avalonia.BuildServices",
"version": "0.0.31",
"hash": "sha256-wgtodGf644CsUZEBIpFKcUjYHTbnu7mZmlr8uHIxeKA="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.2.4",
"hash": "sha256-21Wfb4p0dCevw8Iu/Fchngt1teAnBaxEWgiUpFkerTo="
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "11.2.4",
"hash": "sha256-fqQBKzHcL0CwuOQ90Gp+UUZZP9OQ9U6H41bvikxQJpo="
},
{
"pname": "Avalonia.Desktop",
"version": "11.2.4",
"hash": "sha256-WKTOx7RNSb0fOMg5Za4j+u9DwKXDqVzHwQCEXSm7TFo="
},
{
"pname": "Avalonia.Diagnostics",
"version": "11.2.4",
"hash": "sha256-MUSfRXeJ1bstO2rTqWWCQyVq2EpjM5b5bxe0KxVAEU4="
},
{
"pname": "Avalonia.FreeDesktop",
"version": "11.2.4",
"hash": "sha256-lw8YFXR/pn0awFvFW+OhjZ2LbHonL6zwqLIz+pQp+Sk="
},
{
"pname": "Avalonia.Markup.Xaml.Loader",
"version": "11.2.4",
"hash": "sha256-iSf5UmeWi6D7uVblYj3eMN9pljwKA6O0pAz1UYE38kQ="
},
{
"pname": "Avalonia.Native",
"version": "11.2.4",
"hash": "sha256-MvxivGjYerXcr70JpWe9CCXO6MU9QQgCkmZfjZCFdJM="
},
{
"pname": "Avalonia.ReactiveUI",
"version": "11.2.4",
"hash": "sha256-LqwLUDCIbJowol6BNTTsK7a7KjcLLbCM3y3KKvuHRGw="
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "11.2.4",
"hash": "sha256-mKQVqtzxnZu6p64ZxIHXKSIw3AxAFjhmrxCc5/1VXfc="
},
{
"pname": "Avalonia.Skia",
"version": "11.2.4",
"hash": "sha256-82UQGuCl5hN5kdA3Uz7hptpNnG1EPlSB6k/a6XPSuXI="
},
{
"pname": "Avalonia.Themes.Simple",
"version": "11.2.4",
"hash": "sha256-rnF2/bzN8AuOFlsuekOxlu+uLI7n1kIAmC36FFXMKak="
},
{
"pname": "Avalonia.Win32",
"version": "11.2.4",
"hash": "sha256-LJSKiLbdof8qouQhN7pY1RkMOb09IiAu/nrJFR2OybY="
},
{
"pname": "Avalonia.X11",
"version": "11.2.4",
"hash": "sha256-qty8D2/HlZz/7MiEhuagjlKlooDoW3fow5yJY5oX4Uk="
},
{
"pname": "CodeHollow.FeedReader",
"version": "1.2.6",
"hash": "sha256-uw58N3j/ZsBmBaYeXrSwg6f4ObWChM2GduwAzmNDiak="
},
{
"pname": "Dapper",
"version": "2.0.123",
"hash": "sha256-Ic3pMHtq5jF94tPi8l5MFDGyLnEZYofcqxbH5yDLHZY="
},
{
"pname": "DynamicData",
"version": "8.4.1",
"hash": "sha256-r+haH5VlmZFJTEJ3UedsYybw+oddn/CSvfm6x7PrrQ4="
},
{
"pname": "Fody",
"version": "6.6.4",
"hash": "sha256-Xe9sGzIdQ970f0RwxD3KhdfqvGUoTpim2u2oqYHkDcI="
},
{
"pname": "HarfBuzzSharp",
"version": "7.3.0.3",
"hash": "sha256-1vDIcG1aVwVABOfzV09eAAbZLFJqibip9LaIx5k+JxM="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "7.3.0.3",
"hash": "sha256-HW5r16wdlgDMbE/IfE5AQGDVFJ6TS6oipldfMztx+LM="
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "7.3.0.3",
"hash": "sha256-UpAVfRIYY8Wh8xD4wFjrXHiJcvlBLuc2Xdm15RwQ76w="
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "7.3.0.3",
"hash": "sha256-jHrU70rOADAcsVfVfozU33t/5B5Tk0CurRTf4fVQe3I="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "7.3.0.3",
"hash": "sha256-v/PeEfleJcx9tsEQAo5+7Q0XPNgBqiSLNnB2nnAGp+I="
},
{
"pname": "HotAvalonia",
"version": "2.1.0",
"hash": "sha256-dAsVw79exJeQBCCMwJDv7SWARl3dcSIEYcjcmusLqJM="
},
{
"pname": "HotAvalonia.Extensions",
"version": "2.1.0",
"hash": "sha256-96H37VvKh2E42KNXtUClhvArcJeX6/diooD2HEcNbOY="
},
{
"pname": "JetBrains.Annotations",
"version": "2023.2.0-eap3",
"hash": "sha256-s+SCNDcc8ZHFQXwXte0dfI9NOmqFUQK2IjBA0atT04k="
},
{
"pname": "libsodium",
"version": "1.0.18.2",
"hash": "sha256-gjaW2AYXQSb3LLjtQDjWSxkTmEiqIoIb7NFx0+AlrQs="
},
{
"pname": "Linguini.Bundle",
"version": "0.8.1",
"hash": "sha256-SirB65XjhxBkS+OERZP1e+6l2xZl9DFLz2ST5k2x9tw="
},
{
"pname": "Linguini.Shared",
"version": "0.8.0",
"hash": "sha256-BnCgq61zLy6MMG6gNnZiIOjJNy/So1DPUsdR83m5ACM="
},
{
"pname": "Linguini.Syntax",
"version": "0.8.0",
"hash": "sha256-x5PIdYJVCvIJxsDRP0GZ1PUbAPJl6K4i+K/LNpNE1D0="
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.0",
"hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="
},
{
"pname": "Microsoft.Data.Sqlite.Core",
"version": "7.0.4",
"hash": "sha256-+8pB6kjwp5dNxKZ54zM7xqWSkzQYRiB8AIw2JBeSDlY="
},
{
"pname": "Microsoft.NET.ILLink.Tasks",
"version": "8.0.0",
"hash": "sha256-BAbtucZQvBgbiJ51UAL/Ilx+dz96LpWmfjnnNGlcw48="
},
{
"pname": "Microsoft.Toolkit.Mvvm",
"version": "7.1.2",
"hash": "sha256-JOxZGQGm1WPkIpIDurQnlYk+QgHxJLPguJfCQLJ8NEM="
},
{
"pname": "Mono.Cecil",
"version": "0.11.5",
"hash": "sha256-nPFwbzW08gnCjadBdgi+16MHYhsPAXnFIliveLxGaNA="
},
{
"pname": "Mono.Posix.NETStandard",
"version": "1.0.0",
"hash": "sha256-/F61k7MY/fu2FcfW7CkyjuUroKwlYAXPQFVeDs1QknY="
},
{
"pname": "MonoMod.Backports",
"version": "1.1.2",
"hash": "sha256-oXhcnMo0rDZDcpmhGVhQhax0lFeb9DT3GfSooesOo38="
},
{
"pname": "MonoMod.Core",
"version": "1.2.1",
"hash": "sha256-EQ4CX9OGxBPMDqMCdrudkGY/ywZUi3rtFszDcgp7MBg="
},
{
"pname": "MonoMod.ILHelpers",
"version": "1.1.0",
"hash": "sha256-seoET5fqsyOY8g7DfNpLQHNTdUVY3U/xCoYFC4UrOKw="
},
{
"pname": "MonoMod.RuntimeDetour",
"version": "25.2.1",
"hash": "sha256-ZlgzMqquKWwv8+MvOhIEdvoPShFe7nUAZ3evWhGoLsc="
},
{
"pname": "MonoMod.Utils",
"version": "25.0.7",
"hash": "sha256-GegA6fMRLYVeB75ypkIfTdqgGT38fcKqY/McqZE27qQ="
},
{
"pname": "NSec.Cryptography",
"version": "22.4.0",
"hash": "sha256-TVB8MDXan3dQphaYG/rLQMWgpYJ6WE5ORiqiQrfnCW0="
},
{
"pname": "ReactiveUI",
"version": "20.1.1",
"hash": "sha256-p9l2GMzBRchKb4gW9pQ3DIKhs2O9fX3t/V7jDDztBqE="
},
{
"pname": "ReactiveUI.Fody",
"version": "18.4.26",
"hash": "sha256-ucLfi/HB3cJIdmNssfazZAXPC8QJ35YVA+GtWKVU6UQ="
},
{
"pname": "Robust.Natives",
"version": "0.1.1",
"hash": "sha256-/DPbgIzIqZx7ClHKSgI88p03xwKSNWY/MqNri2ZX7uo="
},
{
"pname": "Robust.Natives.Angle",
"version": "0.1.1-chromium4758",
"hash": "sha256-UGVYx1AZ0K/vzApEshxNQinx7jg43WAMB1lf0yRtnis="
},
{
"pname": "Robust.Natives.Fluidsynth",
"version": "0.1.0",
"hash": "sha256-XRyvRqEcEFFvXSjcvNRl9MIMAY42nWRrC7pHqQvn0wI="
},
{
"pname": "Robust.Natives.Freetype",
"version": "0.1.0",
"hash": "sha256-gufHmxKub3204pAYvcLegY80LMoKPY5u3Z3uIleReWo="
},
{
"pname": "Robust.Natives.Glfw",
"version": "0.1.0",
"hash": "sha256-YDL7w5wVb2Il/O4PRlxPgYUOlM2Ksu+kIrlKc1qYynU="
},
{
"pname": "Robust.Natives.OpenAL",
"version": "0.1.0",
"hash": "sha256-3dIpRKPASi8wu8eMWSC/M4CNJK1WKKJVB4XVXKSeihs="
},
{
"pname": "Robust.Natives.Swnfd",
"version": "0.1.0",
"hash": "sha256-Qav0yDVQ30eV31Gz+oMXJvHQnP+XrOicakw4rb6hVus="
},
{
"pname": "Robust.Shared.AuthLib",
"version": "0.1.2",
"hash": "sha256-ANaf6S0tsocsw37RJvk9d4LcvVQ0+1yO900iG1BLwe4="
},
{
"pname": "Serilog",
"version": "2.12.0",
"hash": "sha256-JD+ud+CFoLGdYGasTWKTxx5PYj2W5pBv2lMybBK7HVM="
},
{
"pname": "Serilog.Sinks.Console",
"version": "4.1.0",
"hash": "sha256-MXIj6YJ4GQbUS8553InMUZPPEfr8h33q2GtAhyu88+Y="
},
{
"pname": "Serilog.Sinks.File",
"version": "5.0.0",
"hash": "sha256-GKy9hwOdlu2W0Rw8LiPyEwus+sDtSOTl8a5l9uqz+SQ="
},
{
"pname": "SharpZstd.Interop",
"version": "1.5.2-beta2",
"hash": "sha256-Xkmf3Fui97lC5CROT6o1W0vD4EURrMh7RJQ+nS+VhYQ="
},
{
"pname": "SkiaSharp",
"version": "2.88.9",
"hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.9",
"hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.9",
"hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.9",
"hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.9",
"hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
},
{
"pname": "SpaceWizards.Sodium",
"version": "0.2.1",
"hash": "sha256-1x10ZvfWf1VGQM87c3Hc7ue9ibhslA1P2zE29FylOhU="
},
{
"pname": "SpaceWizards.Sodium.Interop",
"version": "1.0.18-beta4",
"hash": "sha256-dvPwT6owmBRYZT3UhOd9xBWtVF4C2+Woa7t18Y+IqfA="
},
{
"pname": "Splat",
"version": "15.1.1",
"hash": "sha256-WipAVaUx2HrYNQ9LcYm496LndmSpVbuzJxzP9FA6Ohg="
},
{
"pname": "SQLitePCLRaw.bundle_e_sqlite3",
"version": "2.1.4",
"hash": "sha256-4IHC1KMcKOKHKLlf+/TIAVCQCdEDhPQw5+FUlujVDWo="
},
{
"pname": "SQLitePCLRaw.core",
"version": "2.1.4",
"hash": "sha256-jSI3SIE/HBLEvM+IzhfnAS0QU+JQzIokC/lGLNLvUyU="
},
{
"pname": "SQLitePCLRaw.lib.e_sqlite3",
"version": "2.1.4",
"hash": "sha256-dk7eEcw+lgpZuWdZn2794hQ6GHDeIfCRNGSysPUsiIY="
},
{
"pname": "SQLitePCLRaw.provider.e_sqlite3",
"version": "2.1.4",
"hash": "sha256-Zdj676VT6j6k9ZCL2hYVl4F8bi4TK/ldvQBPmW0oDi0="
},
{
"pname": "System.ComponentModel.Annotations",
"version": "5.0.0",
"hash": "sha256-0pST1UHgpeE6xJrYf5R+U7AwIlH3rVC3SpguilI/MAg="
},
{
"pname": "System.IO.Pipelines",
"version": "8.0.0",
"hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE="
},
{
"pname": "System.Memory",
"version": "4.5.3",
"hash": "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk="
},
{
"pname": "System.Memory",
"version": "4.5.4",
"hash": "sha256-3sCEfzO4gj5CYGctl9ZXQRRhwAraMQfse7yzKoRe65E="
},
{
"pname": "System.Net.Http.WinHttpHandler",
"version": "8.0.0",
"hash": "sha256-wSK5KtWvlDp8WLNddCmAM66uGyj9/KfJyCh8ht1PD1M="
},
{
"pname": "System.Reactive",
"version": "6.0.0",
"hash": "sha256-hXB18OsiUHSCmRF3unAfdUEcbXVbG6/nZxcyz13oe9Y="
},
{
"pname": "System.Reactive",
"version": "6.0.1",
"hash": "sha256-Lo5UMqp8DsbVSUxa2UpClR1GoYzqQQcSxkfyFqB/d4Q="
},
{
"pname": "TerraFX.Interop.Windows",
"version": "10.0.22621.1",
"hash": "sha256-0golrteOhpZblYuKjM3YP2rswAv/hzWDQ6I9rT9TcWE="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.20.0",
"hash": "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw="
},
{
"pname": "YamlDotNet",
"version": "13.0.2",
"hash": "sha256-aCI7NH5iDAOcQJZNdyArt9ksqfrINreCzV7uFg3bNww="
}
]

View File

@@ -0,0 +1,184 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
wrapGAppsHook4,
iconConvTools,
copyDesktopItems,
makeDesktopItem,
libX11,
libICE,
libSM,
libXi,
libXcursor,
libXext,
libXrandr,
fontconfig,
glew,
SDL2,
glfw,
glibc,
libGL,
freetype,
openal,
fluidsynth,
gtk3,
pango,
atk,
cairo,
zlib,
glib,
gdk-pixbuf,
soundfont-fluid,
# Path to set ROBUST_SOUNDFONT_OVERRIDE to, essentially the default soundfont used.
soundfont-path ? "${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2",
}:
let
version = "0.33.0";
pname = "space-station-14-launcher";
in
buildDotnetModule rec {
inherit pname;
# Workaround to prevent buildDotnetModule from overriding assembly versions.
name = "${pname}-${version}";
# A bit redundant but I don't trust this package to be maintained by anyone else.
src = fetchFromGitHub {
owner = "space-wizards";
repo = "SS14.Launcher";
tag = "v${version}";
hash = "sha256-mEockP4fcNFP0h1j30cV2Czq751xjjpdaqQ0Wxe0+7M=";
fetchSubmodules = true;
};
buildType = "Release";
selfContainedBuild = false;
projectFile = [
"SS14.Loader/SS14.Loader.csproj"
"SS14.Launcher/SS14.Launcher.csproj"
];
nugetDeps = ./deps.json;
passthru = {
inherit version;
};
# SDK 8.0 required for Robust.LoaderApi
dotnet-sdk =
with dotnetCorePackages;
combinePackages [
sdk_9_0
sdk_8_0
];
dotnet-runtime = dotnetCorePackages.runtime_9_0;
dotnetFlags = [
"-p:FullRelease=true"
"-p:RobustILLink=true"
"-nologo"
];
nativeBuildInputs = [
wrapGAppsHook4
iconConvTools
copyDesktopItems
];
LD_LIBRARY_PATH = lib.makeLibraryPath [
fontconfig
libX11
libICE
libSM
libXi
libXcursor
libXext
libXrandr
glfw
SDL2
glibc
libGL
openal
freetype
fluidsynth
];
runtimeDeps = [
# Required by the game.
glfw
SDL2
glibc
libGL
openal
freetype
fluidsynth
# Needed for file dialogs.
gtk3
pango
cairo
atk
zlib
glib
gdk-pixbuf
# Avalonia UI dependencies.
libX11
libICE
libSM
libXi
libXcursor
libXext
libXrandr
fontconfig
glew
# TODO: Figure out dependencies for CEF support.
];
# ${soundfont-path} is escaped here:
# https://github.com/NixOS/nixpkgs/blob/d29975d32b1dc7fe91d5cb275d20f8f8aba399ad/pkgs/build-support/setup-hooks/make-wrapper.sh#L126C35-L126C45
# via https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html under ${parameter@operator}
makeWrapperArgs = [ ''--set ROBUST_SOUNDFONT_OVERRIDE ${soundfont-path}'' ];
executables = [ "SS14.Launcher" ];
desktopItems = [
(makeDesktopItem {
name = pname;
exec = meta.mainProgram;
icon = pname;
desktopName = "Space Station 14 Launcher";
comment = meta.description;
categories = [ "Game" ];
startupWMClass = meta.mainProgram;
})
];
postInstall = ''
mkdir -p $out/lib/space-station-14-launcher/loader
cp -r SS14.Loader/bin/${buildType}/*/*/* $out/lib/space-station-14-launcher/loader/
icoFileToHiColorTheme SS14.Launcher/Assets/icon.ico space-station-14-launcher $out
'';
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
meta = with lib; {
description = "Launcher for Space Station 14, a multiplayer game about paranoia and disaster";
homepage = "https://spacestation14.io";
license = licenses.mit;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
mainProgram = "SS14.Launcher";
};
}

View File

@@ -0,0 +1,12 @@
diff --git a/src/main.c b/src/main.c
index 27f5614..2b45708 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,6 +23,7 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
+#include <sys/sysmacros.h>
#include <signal.h>

View File

@@ -0,0 +1,104 @@
{
pkgs,
fetchFromGitHub,
fetchpatch,
lib,
stdenv,
gtk3,
udev,
desktop-file-utils,
shared-mime-info,
intltool,
pkg-config,
wrapGAppsHook3,
ffmpegthumbnailer,
jmtpfs,
ifuseSupport ? false,
ifuse ? null,
lsof,
udisks2,
}:
stdenv.mkDerivation rec {
pname = "spacefm";
version = "1.0.6";
src = fetchFromGitHub {
owner = "IgnorantGuru";
repo = "spacefm";
rev = version;
sha256 = "089r6i40lxcwzp60553b18f130asspnzqldlpii53smz52kvpirx";
};
patches = [
# fix compilation error due to missing include
./glibc-fix.patch
# restrict GDK backends to only X11
./x11-only.patch
# gcc-14 build fix from:
# https://github.com/IgnorantGuru/spacefm/pull/816
(fetchpatch {
name = "gcc-14.patch";
url = "https://github.com/IgnorantGuru/spacefm/commit/98efb1f43e6339b3ceddb9f65ee85e26790fefdf.patch";
hash = "sha256-dau1AMnSBsp8iDrjoo0WTnFQ13vNZW2kM4qz0B/beDI=";
})
];
# Workaround build failure on -fno-common toolchains:
# ld: spacefm-item-prop.o:src/settings.h:123: multiple definition of
# `xsets'; vfs/spacefm-vfs-file-info.o:src/settings.h:123: first defined here
# TODO: can be removed once https://github.com/IgnorantGuru/spacefm/pull/772
# or equivalent is merged upstream.
env.NIX_CFLAGS_COMPILE = "-fcommon";
configureFlags = [
"--with-bash-path=${pkgs.bash}/bin/bash"
"--sysconfdir=${placeholder "out"}/etc"
];
postInstall = ''
rm -f $out/etc/spacefm/spacefm.conf
ln -s /etc/spacefm/spacefm.conf $out/etc/spacefm/spacefm.conf
'';
preFixup = ''
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
'';
nativeBuildInputs = [
pkg-config
intltool
];
buildInputs = [
gtk3
udev
desktop-file-utils
shared-mime-info
wrapGAppsHook3
ffmpegthumbnailer
jmtpfs
lsof
udisks2
]
++ (lib.optionals ifuseSupport [ ifuse ]);
# Introduced because ifuse doesn't build due to CVEs in libplist
# Revert when libplist builds again…
meta = with lib; {
description = "Multi-panel tabbed file manager";
longDescription = ''
Multi-panel tabbed file and desktop manager for Linux
with built-in VFS, udev- or HAL-based device manager,
customizable menu system, and bash integration
'';
homepage = "http://ignorantguru.github.io/spacefm/";
platforms = platforms.linux;
license = licenses.gpl3Plus;
maintainers = with maintainers; [
jagajaga
obadz
];
};
}

View File

@@ -0,0 +1,10 @@
--- a/src/main.c 2021-02-09 13:54:32.847364236 +0100
+++ b/src/main.c 2021-02-09 10:41:51.541203271 +0100
@@ -1350,6 +1351,7 @@
vfs_file_monitor_clean();
return 1;
}
+ gdk_set_allowed_backends("x11");
gtk_init (&argc, &argv);
int ret = custom_dialog_init( argc, argv );
if ( ret != 0 )

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
apple-sdk_12,
}:
stdenv.mkDerivation rec {
pname = "spacebar";
version = "1.4.0";
src = fetchFromGitHub {
owner = "cmacrae";
repo = "spacebar";
rev = "v${version}";
sha256 = "sha256-4LiG43kPZtsm7SQ/28RaGMpYsDshCaGvc1mouPG3jFM=";
};
buildInputs = [
apple-sdk_12
];
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/share/man/man1/
cp ./bin/spacebar $out/bin/spacebar
cp ./doc/spacebar.1 $out/share/man/man1/spacebar.1
'';
meta = with lib; {
description = "Minimal status bar for macOS";
homepage = "https://github.com/cmacrae/spacebar";
platforms = platforms.darwin;
maintainers = [ maintainers.cmacrae ];
license = licenses.mit;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
buildPackages,
}:
buildGoModule rec {
pname = "spacectl";
version = "1.16.0";
src = fetchFromGitHub {
owner = "spacelift-io";
repo = "spacectl";
rev = "v${version}";
hash = "sha256-ZtM3A09cQ7BqIYcEJTggunxRidXiu/xlsp9F8qIwSv0=";
};
vendorHash = "sha256-g5Y6NuG8z2Pnh3Ng690FcwOrEU2EOhftZbM8oUFj4B4=";
nativeBuildInputs = [ installShellFiles ];
postInstall =
let
emulator = stdenv.hostPlatform.emulator buildPackages;
in
''
installShellCompletion --cmd spacectl \
--bash <(${emulator} $out/bin/spacectl completion bash) \
--fish <(${emulator} $out/bin/spacectl completion fish) \
--zsh <(${emulator} $out/bin/spacectl completion zsh) \
'';
meta = {
homepage = "https://github.com/spacelift-io/spacectl";
description = "Spacelift client and CLI";
changelog = "https://github.com/spacelift-io/spacectl/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kashw2 ];
mainProgram = "spacectl";
};
}

View File

@@ -0,0 +1,128 @@
{
lib,
stdenv,
fetchurl,
undmg,
nix-update-script,
#linux required
autoPatchelfHook,
dpkg,
gdk-pixbuf,
glib,
gst_all_1,
libsoup_3,
webkitgtk_4_1,
xdotool,
}:
let
pname = "spacedrive";
version = "0.4.3";
src =
fetchurl
{
aarch64-darwin = {
url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-aarch64.dmg";
hash = "sha256-0Bj6GjsxLUgLlycA33pXIvItoqFtatjJl2Z/ZwjnC0c=";
};
x86_64-darwin = {
url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-darwin-x86_64.dmg";
hash = "sha256-E1XCGeWBe/oHHE3izMykT8wFrIGhNMvmxEieMrnSfZ8=";
};
x86_64-linux = {
url = "https://github.com/spacedriveapp/spacedrive/releases/download/${version}/Spacedrive-linux-x86_64.deb";
hash = "sha256-MLCAHNLJ/9bdCBLBBssrpk98uvKTfHs9YGxmxJ11/oY=";
};
}
.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported.");
meta = {
description = "Open source file manager, powered by a virtual distributed filesystem";
homepage = "https://www.spacedrive.com";
changelog = "https://github.com/spacedriveapp/spacedrive/releases/tag/${version}";
platforms = [
"aarch64-darwin"
"x86_64-darwin"
"x86_64-linux"
];
license = lib.licenses.agpl3Plus;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [
DataHearth
heisfer
mikaelfangel
stepbrobd
];
mainProgram = "spacedrive";
};
passthru.updateScript = nix-update-script { };
in
if stdenv.hostPlatform.isDarwin then
stdenv.mkDerivation {
inherit
pname
version
src
meta
passthru
;
sourceRoot = "Spacedrive.app";
nativeBuildInputs = [ undmg ];
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications/Spacedrive.app"
cp -r . "$out/Applications/Spacedrive.app"
mkdir -p "$out/bin"
ln -s "$out/Applications/Spacedrive.app/Contents/MacOS/sd-desktop" "$out/bin/spacedrive"
runHook postInstall
'';
}
else
stdenv.mkDerivation {
inherit
pname
version
src
meta
passthru
;
nativeBuildInputs = [
autoPatchelfHook
dpkg
];
# Depends: libc6, libxdo3, libwebkit2gtk-4.1-0, libgtk-3-0
# Recommends: gstreamer1.0-plugins-ugly
# Suggests: gstreamer1.0-plugins-bad
buildInputs = [
xdotool
glib
libsoup_3
webkitgtk_4_1
gdk-pixbuf
gst_all_1.gst-plugins-ugly
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-base
gst_all_1.gstreamer
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r usr/share $out/
cp -r usr/lib $out/
cp -r usr/bin $out/
runHook postInstall
'';
}

View File

@@ -0,0 +1,38 @@
{
stdenv,
lib,
libspnav,
libX11,
mesa_glu,
}:
stdenv.mkDerivation {
pname = "spacenav-cube-example";
inherit (libspnav) version src;
sourceRoot = "${libspnav.src.name}/examples/cube";
buildInputs = [
libX11
mesa_glu
libspnav
];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp cube $out/bin/spacenav-cube-example
runHook postInstall
'';
meta = with lib; {
homepage = "https://spacenav.sourceforge.net/";
description = "Example application to test the spacenavd driver";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ sohalt ];
mainProgram = "spacenav-cube-example";
};
}

View File

@@ -0,0 +1,42 @@
{
stdenv,
lib,
fetchFromGitHub,
libXext,
libX11,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spacenavd";
version = "1.3.1";
src = fetchFromGitHub {
owner = "FreeSpacenav";
repo = "spacenavd";
tag = "v${finalAttrs.version}";
hash = "sha256-O6gkd+9iW6X8eMN99Ajz9Z0tqZBtbVEYDb67yI1b/Bk=";
};
buildInputs = [
libX11
libXext
];
configureFlags = [ "--disable-debug" ];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
postInstall = ''
install -Dm644 $src/contrib/systemd/spacenavd.service -t $out/lib/systemd/system
substituteInPlace $out/lib/systemd/system/spacenavd.service \
--replace-fail "/usr/local/bin/spacenavd" "$out/bin/spacenavd"
'';
meta = with lib; {
homepage = "https://spacenav.sourceforge.net/";
description = "Device driver and SDK for 3Dconnexion 3D input devices";
longDescription = "A free, compatible alternative, to the proprietary 3Dconnexion device driver and SDK, for their 3D input devices (called 'space navigator', 'space pilot', 'space traveller', etc)";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ sohalt ];
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "spacer";
version = "0.5.0";
src = fetchFromGitHub {
owner = "samwho";
repo = "spacer";
rev = "v${version}";
hash = "sha256-OryVQmecb8BgnEKeSvAQha+uiv+aZd2Q41T9tZTcWaI=";
};
cargoHash = "sha256-sFsERAvR99BZm7SmaL/5cmCrwVZIKGRiFYcBtSryFaw=";
meta = with lib; {
description = "CLI tool to insert spacers when command output stops";
homepage = "https://github.com/samwho/spacer";
changelog = "https://github.com/samwho/spacer/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "spacer";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "spaceship-prompt";
version = "4.19.0";
src = fetchFromGitHub {
owner = "denysdovhan";
repo = "spaceship-prompt";
rev = "v${version}";
sha256 = "sha256-g0hiUyGVaUA9Jg5UHFEyf1ioUnMb2cp7tOrtTFLMtvc=";
};
strictDeps = true;
dontBuild = true;
installPhase = ''
install -Dm644 LICENSE.md "$out/share/licenses/spaceship-prompt/LICENSE"
install -Dm644 README.md "$out/share/doc/spaceship-prompt/README.md"
find docs -type f -exec install -Dm644 {} "$out/share/doc/spaceship-prompt/{}" \;
find lib -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \;
find scripts -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \;
find sections -type f -exec install -Dm644 {} "$out/lib/spaceship-prompt/{}" \;
install -Dm644 spaceship.zsh "$out/lib/spaceship-prompt/spaceship.zsh"
install -Dm644 async.zsh "$out/lib/spaceship-prompt/async.zsh"
install -d "$out/share/zsh/themes/"
ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/themes/spaceship.zsh-theme"
install -d "$out/share/zsh/site-functions/"
ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/site-functions/prompt_spaceship_setup"
'';
meta = {
description = "Zsh prompt for Astronauts";
homepage = "https://github.com/denysdovhan/spaceship-prompt/";
changelog = "https://github.com/spaceship-prompt/spaceship-prompt/releases/tag/v${version}";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
nyanloutre
moni
kyleondy
];
};
}

View File

@@ -0,0 +1,21 @@
# not a stable interface, do not reference outside the deno package but make a
# copy if you need
{
lib,
stdenv,
fetchurl,
}:
{
fetchLibrustyV8 =
args:
fetchurl {
name = "librusty_v8-${args.version}";
url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
sha256 = args.shas.${stdenv.hostPlatform.system};
meta = {
inherit (args) version;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
};
}

View File

@@ -0,0 +1,12 @@
# auto-generated file -- DO NOT EDIT!
{ fetchLibrustyV8 }:
fetchLibrustyV8 {
version = "137.2.1";
shas = {
x86_64-linux = "sha256-1mV+UjvJsIyLFpBGVDrGxr/rqUgKzRRFwgnMyYTb/pM=";
aarch64-linux = "sha256-Rp7chA+GjsozCkMQrDnOoi4VhVJdrFZd1BuLfcRhGjw=";
x86_64-darwin = "sha256-tDMk+F6D/h4osYlzT2qAhqfHYUSDk3nL4RxEKjhBhD0=";
aarch64-darwin = "sha256-1eBUjKFalb/CIPfHYP8SvqIaxRep8vU6u9QFShOMUsQ=";
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
callPackage,
fetchFromGitHub,
rustPlatform,
pkg-config,
perl,
git,
versionCheckHook,
librusty_v8 ? callPackage ./librusty_v8.nix {
inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8;
},
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "spacetimedb";
version = "1.5.0";
src = fetchFromGitHub {
owner = "clockworklabs";
repo = "spacetimedb";
tag = "v${finalAttrs.version}";
hash = "sha256-fUs3EdyOzUogEEhSOnpFrA1LeivEa/crmlhQcf2lGUE=";
};
cargoHash = "sha256-EWLfAyYN/U2kt03lmR8mVXc+j/DbjFat+RysNUt99QI=";
nativeBuildInputs = [
pkg-config
perl
git
];
cargoBuildFlags = [ "-p spacetimedb-standalone -p spacetimedb-cli" ];
checkFlags = [
# requires wasm32-unknown-unknown target
"--skip=codegen"
];
doInstallCheck = true;
env.RUSTY_V8_ARCHIVE = librusty_v8;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/spacetime";
versionCheckProgramArg = "--version";
postInstall = ''
mv $out/bin/spacetimedb-cli $out/bin/spacetime
'';
meta = {
description = "Full-featured relational database system that lets you run your application logic inside the database";
homepage = "https://github.com/clockworklabs/SpacetimeDB";
license = lib.licenses.bsl11;
mainProgram = "spacetime";
maintainers = with lib.maintainers; [ akotro ];
};
})

View File

@@ -0,0 +1,48 @@
# The Nix expression is a 1:1 mapping of the spacevim toml config which you can find on their website: spacevim.org/quick-start-guide/#configuration
{
custom_plugins = [
{
merged = false;
name = "lilydjwg/colorizer";
}
];
layers = [
{ name = "default"; }
{
enable = true;
name = "colorscheme";
}
{ name = "fzf"; }
{
default_height = 30;
default_position = "top";
name = "shell";
}
{ name = "edit"; }
{ name = "VersionControl"; }
{ name = "git"; }
{
auto-completion-return-key-behavior = "complete";
auto-completion-tab-key-behavior = "cycle";
autocomplete_method = "coc";
name = "autocomplete";
}
{ name = "lang#ruby"; }
{ name = "lang#nix"; }
{ name = "lang#java"; }
{ name = "lang#kotlin"; }
{ name = "lang#sh"; }
{ name = "lang#html"; }
];
options = {
buffer_index_type = 4;
colorscheme = "gruvbox";
colorscheme_bg = "dark";
enable_guicolors = true;
enable_statusline_mode = true;
enable_tabline_filetype_icon = true;
statusline_separator = "fire";
timeoutlen = 500;
};
}

View File

@@ -0,0 +1,82 @@
{
fetchFromGitHub,
formats,
fzf,
git,
lib,
makeWrapper,
neovim,
nix-update-script,
ripgrep,
runCommand,
stdenv,
vim-full,
spacevim_config ? import ./init.nix,
}:
let
format = formats.toml { };
spacevimdir = runCommand "SpaceVim.d" { } ''
mkdir -p $out
cp ${format.generate "init.toml" spacevim_config} $out/init.toml
'';
in
stdenv.mkDerivation rec {
pname = "spacevim";
version = "2.4.0";
src = fetchFromGitHub {
owner = "SpaceVim";
repo = "SpaceVim";
rev = "v${version}";
hash = "sha256-qiNadhQJjU9RY14X8+pd4Ul+NLoNqbxuh3Kenw1dHDc=";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r $(pwd) $out/SpaceVim
# trailing slash very important for SPACEVIMDIR
makeWrapper "${vim-full}/bin/vim" "$out/bin/spacevim" \
--add-flags "-u $out/SpaceVim/vimrc" --set SPACEVIMDIR "${spacevimdir}/" \
--prefix PATH : ${
lib.makeBinPath [
fzf
git
ripgrep
]
}
makeWrapper "${neovim}/bin/nvim" "$out/bin/spacenvim" \
--add-flags "-u $out/SpaceVim/init.vim" --set SPACEVIMDIR "${spacevimdir}/" \
--prefix PATH : ${
lib.makeBinPath [
fzf
git
ripgrep
]
}
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Modular Vim/Neovim configuration";
longDescription = ''
SpaceVim is a modular configuration of Vim and Neovim. It's inspired by
spacemacs. It manages collections of plugins in layers, which help to
collect related packages together to provide features. This approach
helps keep the configuration organized and reduces overhead for the user
by keeping them from having to think about what packages to install.
'';
homepage = "https://spacevim.org/";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.perchun ];
platforms = lib.platforms.all;
mainProgram = "spacevim";
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
rustPlatform,
fetchFromGitLab,
stdenv,
_experimental-update-script-combinators,
nix-update-script,
nix-update,
writeScript,
git,
pkg-config,
openssl,
python312,
swim,
}:
rustPlatform.buildRustPackage rec {
pname = "spade";
version = "0.13.0";
src = fetchFromGitLab {
owner = "spade-lang";
repo = "spade";
rev = "v${version}";
hash = "sha256-eWeEbwIm+PC0XHmvV3xZqUIcA01arnalbGFtPTUP9tg=";
# only needed for vatch, which contains test data
fetchSubmodules = true;
};
cargoHash = "sha256-YMUeHr9eUOYIcO7PbaFgZa0Ib10GMF+jT10ZCSG7PNo=";
# TODO: somehow respect https://nixos.org/manual/nixpkgs/stable/#var-passthru-updateScript-commit
passthru.updateScript = _experimental-update-script-combinators.sequence [
# rust + gitlab + fetchgit is a rare combo
(writeScript "update-spade" ''
VERSION="$(
${lib.getExe git} ls-remote --tags --sort -version:refname ${lib.escapeShellArg src.gitRepoUrl} \
| cut -f2 | grep ^refs/tags/v | cut -d/ -f3- | cut -c2- \
| sort --version-sort --reverse | head -n1
)"
exec ${lib.getExe nix-update} spade --version "$VERSION" "$@" --commit
'')
(nix-update-script {
extraArgs = [
"swim"
"--commit"
];
})
];
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ python312 ];
env.NIX_CFLAGS_LINK = lib.optionalString stdenv.hostPlatform.isDarwin "-L${python312}/lib/python3.12/config-3.12-darwin -lpython3.12";
passthru.tests = {
inherit swim;
};
meta = with lib; {
description = "Better hardware description language";
homepage = "https://gitlab.com/spade-lang/spade";
changelog = "https://gitlab.com/spade-lang/spade/-/blob/${src.rev}/CHANGELOG.md";
# compiler is eupl12, spade-lang stdlib is both asl20 and mit
license = with licenses; [
eupl12
asl20
mit
];
maintainers = with maintainers; [ pbsds ];
mainProgram = "spade";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
bzip2,
cmake,
fetchFromGitHub,
ncurses,
python3,
readline,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spades";
version = "4.2.0";
src = fetchFromGitHub {
owner = "ablab";
repo = "spades";
tag = "v${finalAttrs.version}";
hash = "sha256-BlZjfZKtCm1kWNPjdth3pYFN0plU7xfTsFotPefzzMY=";
};
sourceRoot = "${finalAttrs.src.name}/src";
cmakeFlags = [
"-DZLIB_ENABLE_TESTS=OFF"
"-DSPADES_BUILD_INTERNAL=OFF"
];
preConfigure = ''
# The CMakeListsInternal.txt file should be empty in the release tarball
echo "" > CMakeListsInternal.txt
'';
nativeBuildInputs = [ cmake ];
buildInputs = [
bzip2
ncurses
python3
readline
];
doCheck = true;
strictDeps = true;
meta = {
description = "St. Petersburg genome assembler, a toolkit for assembling and analyzing sequencing data";
changelog = "https://github.com/ablab/spades/blob/${finalAttrs.version}/changelog.md";
downloadPage = "https://github.com/ablab/spades";
homepage = "http://ablab.github.io/spades";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bzizou ];
broken = stdenv.hostPlatform.isMusl;
};
})

View File

@@ -0,0 +1,16 @@
Submodule libultraship contains modified content
diff --git a/libultraship/cmake/dependencies/common.cmake b/libultraship/cmake/dependencies/common.cmake
index 596158c..c62d7b2 100644
--- a/libultraship/cmake/dependencies/common.cmake
+++ b/libultraship/cmake/dependencies/common.cmake
@@ -47,10 +47,6 @@ set(stormlib_optimizations_patch git apply ${CMAKE_CURRENT_SOURCE_DIR}/cmake/dep
endif()
#=================== STB ===================
-set(STB_DIR ${CMAKE_BINARY_DIR}/_deps/stb)
-file(DOWNLOAD "https://github.com/nothings/stb/raw/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h" "${STB_DIR}/stb_image.h")
-file(WRITE "${STB_DIR}/stb_impl.c" "#define STB_IMAGE_IMPLEMENTATION\n#include \"stb_image.h\"")
-
add_library(stb STATIC)
target_sources(stb PRIVATE

View File

@@ -0,0 +1,44 @@
diff --git a/torch/CMakeLists.txt b/torch/CMakeLists.txt
index ba3859a..cf3da99 100644
--- a/torch/CMakeLists.txt
+++ b/torch/CMakeLists.txt
@@ -36,8 +36,7 @@ if(USE_STANDALONE)
# Because libgfxd is not a CMake project, we have to manually fetch it and add it to the build
FetchContent_Declare(
libgfxd
- GIT_REPOSITORY https://github.com/glankk/libgfxd.git
- GIT_TAG 96fd3b849f38b3a7c7b7f3ff03c5921d328e6cdf
+ URL @libgfxd_src@
)
FetchContent_GetProperties(libgfxd)
@@ -205,8 +204,7 @@ set(YAML_CPP_BUILD_TESTS OFF)
set(YAML_CPP_DISABLE_UNINSTALL ON)
FetchContent_Declare(
yaml-cpp
- GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git
- GIT_TAG 2f86d13775d119edbb69af52e5f566fd65c6953b
+ URL @yaml-cpp_src@
)
set(YAML_CPP_BUILD_TESTS OFF)
FetchContent_MakeAvailable(yaml-cpp)
@@ -219,8 +217,7 @@ endif()
if(USE_STANDALONE)
FetchContent_Declare(
spdlog
- GIT_REPOSITORY https://github.com/gabime/spdlog.git
- GIT_TAG 7e635fca68d014934b4af8a1cf874f63989352b7
+ URL @spdlog_src@
)
FetchContent_MakeAvailable(spdlog)
@@ -234,8 +231,7 @@ endif()
set(tinyxml2_BUILD_TESTING OFF)
FetchContent_Declare(
tinyxml2
- GIT_REPOSITORY https://github.com/leethomason/tinyxml2.git
- GIT_TAG 10.0.0
+ URL @tinyxml2_src@
OVERRIDE_FIND_PACKAGE
)
FetchContent_MakeAvailable(tinyxml2)

View File

@@ -0,0 +1,277 @@
{
lib,
fetchFromGitHub,
applyPatches,
writeTextFile,
fetchurl,
fetchpatch,
stdenv,
replaceVars,
yaml-cpp,
srcOnly,
cmake,
copyDesktopItems,
installShellFiles,
lsb-release,
makeWrapper,
ninja,
pkg-config,
libGL,
libvorbis,
libX11,
libzip,
nlohmann_json,
SDL2,
SDL2_net,
spdlog,
tinyxml-2,
zenity,
sdl_gamecontrollerdb,
spaghettikart,
makeDesktopItem,
}:
let
# The following are either normally fetched during build time or a specific version is required
dr_libs = fetchFromGitHub {
owner = "mackron";
repo = "dr_libs";
rev = "da35f9d6c7374a95353fd1df1d394d44ab66cf01";
hash = "sha256-ydFhQ8LTYDBnRTuETtfWwIHZpRciWfqGsZC6SuViEn0=";
};
imgui' = applyPatches {
src = fetchFromGitHub {
owner = "ocornut";
repo = "imgui";
tag = "v1.91.9b-docking";
hash = "sha256-mQOJ6jCN+7VopgZ61yzaCnt4R1QLrW7+47xxMhFRHLQ=";
};
patches = [
"${spaghettikart.src}/libultraship/cmake/dependencies/patches/imgui-fixes-and-config.patch"
];
};
libgfxd = fetchFromGitHub {
owner = "glankk";
repo = "libgfxd";
rev = "008f73dca8ebc9151b205959b17773a19c5bd0da";
hash = "sha256-AmHAa3/cQdh7KAMFOtz5TQpcM6FqO9SppmDpKPTjTt8=";
};
prism = fetchFromGitHub {
owner = "KiritoDv";
repo = "prism-processor";
rev = "7ae724a6fb7df8cbf547445214a1a848aefef747";
hash = "sha256-G7koDUxD6PgZWmoJtKTNubDHg6Eoq8I+AxIJR0h3i+A=";
};
stb_impl = writeTextFile {
name = "stb_impl.c";
text = ''
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
'';
};
stb' = fetchurl {
name = "stb_image.h";
url = "https://raw.githubusercontent.com/nothings/stb/0bc88af4de5fb022db643c2d8e549a0927749354/stb_image.h";
hash = "sha256-xUsVponmofMsdeLsI6+kQuPg436JS3PBl00IZ5sg3Vw=";
};
stormlib' = applyPatches {
src = fetchFromGitHub {
owner = "ladislav-zezula";
repo = "StormLib";
tag = "v9.25";
hash = "sha256-HTi2FKzKCbRaP13XERUmHkJgw8IfKaRJvsK3+YxFFdc=";
};
patches = [
"${spaghettikart.src}/libultraship/cmake/dependencies/patches/stormlib-optimizations.patch"
];
};
thread_pool = fetchFromGitHub {
owner = "bshoshany";
repo = "thread-pool";
tag = "v4.1.0";
hash = "sha256-zhRFEmPYNFLqQCfvdAaG5VBNle9Qm8FepIIIrT9sh88=";
};
# Include cmake4 patch
# Remove when yaml-cpp.src is updated to include it
yaml-patched = applyPatches {
src = yaml-cpp.src;
patches = [
(fetchpatch {
name = "yaml-cpp-fix-cmake-4.patch";
url = "https://github.com/jbeder/yaml-cpp/commit/c2680200486572baf8221ba052ef50b58ecd816e.patch";
hash = "sha256-1kXRa+xrAbLEhcJxNV1oGHPmayj1RNIe6dDWXZA3mUA=";
})
];
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "spaghettikart";
version = "0-unstable-2025-08-07";
src = fetchFromGitHub {
owner = "HarbourMasters";
repo = "SpaghettiKart";
rev = "334fdeafd26c15e03b4f198002ad86b8422c0e2f";
hash = "sha256-0nDaX34C7stg7S2mzPChz0fRz/t7yyevKEAPmIR+lak=";
fetchSubmodules = true;
deepClone = true;
postFetch = ''
cd $out
(git describe --tags HEAD 2>/dev/null || echo "") > PROJECT_VERSION
git log --pretty=format:%h -1 > PROJECT_VERSION_PATCH
rm -rf .git
'';
};
patches = [
# Don't fetch stb as we will patch our own
./dont-fetch-stb.patch
# Can't fetch these torch deps in the sandbox
(replaceVars ./git-deps.patch {
libgfxd_src = fetchFromGitHub {
owner = "glankk";
repo = "libgfxd";
rev = "96fd3b849f38b3a7c7b7f3ff03c5921d328e6cdf";
hash = "sha256-dedZuV0BxU6goT+rPvrofYqTz9pTA/f6eQcsvpDWdvQ=";
};
spdlog_src = fetchFromGitHub {
owner = "gabime";
repo = "spdlog";
rev = "7e635fca68d014934b4af8a1cf874f63989352b7";
hash = "sha256-cxTaOuLXHRU8xMz9gluYz0a93O0ez2xOxbloyc1m1ns=";
};
yaml-cpp_src = fetchFromGitHub {
owner = "jbeder";
repo = "yaml-cpp";
rev = "28f93bdec6387d42332220afa9558060c8016795";
hash = "sha256-59/s4Rqiiw7LKQw0UwH3vOaT/YsNVcoq3vblK0FiO5c=";
};
tinyxml2_src = srcOnly tinyxml-2;
})
];
# Recent builds enabled LTO which won't build with nix
NIX_CFLAGS_COMPILE = "-fno-lto";
nativeBuildInputs = [
cmake
copyDesktopItems
installShellFiles
lsb-release
makeWrapper
ninja
pkg-config
];
buildInputs = [
libGL
libvorbis
libX11
libzip
nlohmann_json
SDL2
SDL2_net
spdlog
tinyxml-2
zenity
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_INSTALL_PREFIX" "${placeholder "out"}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_DR_LIBS" "${dr_libs}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_IMGUI" "${imgui'}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_LIBGFXD" "${libgfxd}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_PRISM" "${prism}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_STORMLIB" "${stormlib'}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_THREADPOOL" "${thread_pool}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_TINYXML2" "${tinyxml-2}")
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_YAML-CPP" "${yaml-patched}")
];
strictDeps = true;
# Linking fails without this
hardeningDisable = [ "format" ];
preConfigure = ''
mkdir stb
cp ${stb'} ./stb/${stb'.name}
cp ${stb_impl} ./stb/${stb_impl.name}
substituteInPlace libultraship/cmake/dependencies/common.cmake \
--replace-fail "\''${STB_DIR}" "$(readlink -f ./stb)"
'';
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "COMMAND git describe --tags" "COMMAND echo $(cat PROJECT_VERSION)" \
--replace-fail "COMMAND git log --pretty=format:%h -1" "COMMAND echo $(cat PROJECT_VERSION_PATCH)"
'';
postBuild = ''
cp ${sdl_gamecontrollerdb}/share/gamecontrollerdb.txt gamecontrollerdb.txt
./TorchExternal/src/TorchExternal-build/torch pack ../assets spaghetti.o2r o2r
'';
postInstall = ''
installBin Spaghettify
mkdir -p $out/share/spaghettikart
cp -r ../yamls $out/share/spaghettikart/
install -Dm644 -t $out/share/spaghettikart {spaghetti.o2r,config.yml,gamecontrollerdb.txt}
install -Dm644 ../icon.png $out/share/pixmaps/spaghettikart.png
install -Dm644 -t $out/share/licenses/spaghettikart/libgfxd ${libgfxd}/LICENSE
install -Dm644 -t $out/share/licenses/spaghettikart/libultraship ../libultraship/LICENSE
install -Dm644 -t $out/share/licenses/spaghettikart/thread_pool ${thread_pool}/LICENSE.txt
'';
# Unfortunately, spaghettikart really wants a writable working directory
# Create $HOME/.local/share/spaghettikart and symlink required files
postFixup = ''
wrapProgram $out/bin/Spaghettify \
--prefix PATH ":" ${lib.makeBinPath [ zenity ]} \
--run 'mkdir -p ~/.local/share/spaghettikart' \
--run "ln -sf $out/share/spaghettikart/spaghetti.o2r ~/.local/share/spaghettikart/spaghetti.o2r" \
--run "ln -sf $out/share/spaghettikart/config.yml ~/.local/share/spaghettikart/config.yml" \
--run "ln -sfT $out/share/spaghettikart/yamls ~/.local/share/spaghettikart/yamls" \
--run "ln -sf $out/share/spaghettikart/gamecontrollerdb.txt ~/.local/share/spaghettikart/gamecontrollerdb.txt" \
--run 'cd ~/.local/share/spaghettikart'
'';
desktopItems = [
(makeDesktopItem {
name = "spaghettikart";
icon = "spaghettikart";
exec = "Spaghettify";
comment = finalAttrs.meta.description;
genericName = "spaghettikart";
desktopName = "spaghettikart";
categories = [ "Game" ];
})
];
meta = {
homepage = "https://github.com/HarbourMasters/SpaghettiKart";
description = "Mario Kart 64 PC Port";
mainProgram = "Spaghettify";
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ qubitnano ];
license = with lib.licenses; [
# libultraship, libgfxd, thread_pool, dr_libs, prism-processor
mit
# Reverse engineering
unfree
];
};
})

View File

@@ -0,0 +1,55 @@
{
haskell,
haskellPackages,
lib,
# The following are only needed for the passthru.tests:
spago-legacy,
cacert,
git,
nodejs,
purescript,
runCommand,
}:
lib.pipe haskellPackages.spago-legacy [
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (oldAttrs: {
changelog = "https://github.com/purescript/spago-legacy/releases/tag/${oldAttrs.version}";
passthru = (oldAttrs.passthru or { }) // {
updateScript = ./update.sh;
# These tests can be run with the following command. The tests access the
# network, so they cannot be run in the nix sandbox. sudo is needed in
# order to change the sandbox option.
#
# $ sudo nix-build -A spago-legacy.passthru.tests --option sandbox relaxed
#
tests =
runCommand "spago-legacy-tests"
{
__noChroot = true;
nativeBuildInputs = [
cacert
git
nodejs
purescript
spago-legacy
];
}
''
# spago expects HOME to be set because it creates a cache file under
# home.
HOME=$(pwd)
spago --verbose init
spago --verbose build
spago --verbose test
touch $out
'';
};
}))
]

View File

@@ -0,0 +1,154 @@
# This has been automatically generated by the script
# ./update.sh. This should not be changed by hand.
{
mkDerivation,
aeson,
aeson-pretty,
ansi-terminal,
async-pool,
base,
bower-json,
bytestring,
containers,
cryptonite,
dhall,
directory,
either,
extra,
fetchgit,
file-embed,
filepath,
foldl,
fsnotify,
generic-lens,
Glob,
hspec,
hspec-discover,
hspec-megaparsec,
http-client,
http-conduit,
http-types,
lens-family-core,
lib,
megaparsec,
mtl,
network-uri,
open-browser,
optparse-applicative,
prettyprinter,
process,
QuickCheck,
retry,
rio,
rio-orphans,
safe,
semver-range,
stm,
stringsearch,
tar,
template-haskell,
temporary,
text,
time,
transformers,
turtle,
unliftio,
unordered-containers,
uri-encode,
utf8-string,
versions,
with-utf8,
yaml,
zlib,
}:
mkDerivation {
pname = "spago-legacy";
version = "0.21.1";
src = fetchgit {
url = "https://github.com/purescript/spago-legacy.git";
sha256 = "18p9cic1y9b2v12np4b5sd82rz5njxh8f1vgqs4gwm6xjccmszmr";
rev = "2790261c28f59940f192c56f3b8245b3ae8b798d";
fetchSubmodules = true;
};
isLibrary = true;
isExecutable = true;
libraryHaskellDepends = [
aeson
aeson-pretty
ansi-terminal
async-pool
base
bower-json
bytestring
containers
cryptonite
dhall
directory
either
file-embed
filepath
foldl
fsnotify
generic-lens
Glob
http-client
http-conduit
http-types
lens-family-core
megaparsec
mtl
network-uri
open-browser
optparse-applicative
prettyprinter
process
retry
rio
rio-orphans
safe
semver-range
stm
stringsearch
tar
template-haskell
temporary
text
time
transformers
turtle
unliftio
unordered-containers
uri-encode
utf8-string
versions
with-utf8
yaml
zlib
];
executableHaskellDepends = [
ansi-terminal
base
text
turtle
with-utf8
];
testHaskellDepends = [
base
containers
directory
extra
hspec
hspec-megaparsec
megaparsec
process
QuickCheck
temporary
text
turtle
versions
];
testToolDepends = [ hspec-discover ];
homepage = "https://github.com/purescript/spago-legacy#readme";
license = lib.licenses.bsd3;
mainProgram = "spago";
}

View File

@@ -0,0 +1,41 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq haskellPackages.cabal2nix-unstable.bin nix-prefetch-scripts -I nixpkgs=.
#
# This script will update the spago-legacy derivation to the latest version using
# cabal2nix.
#
# Note that you should always try building spago-legacy after updating it here, since
# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
# need to be updated/changed.
set -eo pipefail
# This is the directory of this update.sh script.
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# Spago derivation created with cabal2nix.
spago_derivation_file="${script_dir}/spago-legacy.nix"
# This is the current revision of spago-legacy in Nixpkgs.
old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$spago_derivation_file")"
# This is the latest release version of spago-legacy on GitHub.
new_version=$(curl --silent "https://api.github.com/repos/purescript/spago-legacy/releases" | jq '.[0].tag_name' --raw-output)
echo "Updating spago-legacy from old version $old_version to new version $new_version."
echo "Running cabal2nix and outputting to ${spago_derivation_file}..."
echo "# This has been automatically generated by the script" > "$spago_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$spago_derivation_file"
cabal2nix --revision "$new_version" "https://github.com/purescript/spago-legacy.git" >> "$spago_derivation_file"
nixfmt "$spago_derivation_file"
# TODO: This should ideally also automatically update the docsSearchVersion
# from pkgs/development/haskell/configuration-nix.nix.
echo
echo "Finished. Make sure you run the following commands to confirm Spago builds correctly:"
echo ' - `nix build -L -f ./. spago-legacy`'
echo ' - `sudo nix build -L -f ./. spago-legacy.passthru.tests --option sandbox relaxed`'

View File

@@ -0,0 +1,145 @@
{
lib,
fetchurl,
perlPackages,
makeBinaryWrapper,
gnupg,
re2c,
gcc,
gnumake,
libxcrypt,
openssl,
coreutils,
poppler-utils,
tesseract,
iana-etc,
}:
perlPackages.buildPerlPackage rec {
pname = "SpamAssassin";
version = "4.0.1";
rulesRev = "r1916528";
src = fetchurl {
url = "mirror://apache/spamassassin/source/Mail-${pname}-${version}.tar.bz2";
hash = "sha256-l3XtdVnoPsPmwD7bK+j/x/FcxAX7E+hcFI6wvxkXIag=";
};
defaultRulesSrc = fetchurl {
url = "mirror://apache/spamassassin/source/Mail-${pname}-rules-${version}.${rulesRev}.tgz";
hash = "sha256-OB6t/H5RPl9zU4m3gXPeWvRx89Bv5quPEpY0pmRLS/Q=";
};
patches = [
./satest-no-clean-path.patch
./sa_compile-use-perl5lib.patch
];
nativeBuildInputs = [ makeBinaryWrapper ];
buildInputs =
(with perlPackages; [
HTMLParser
NetCIDRLite
NetDNS
NetAddrIP
DBFile
HTTPDate
MailDKIM
LWP
LWPProtocolHttps
IOSocketSSL
DBI
EncodeDetect
IPCountry
NetIdent
Razor2ClientAgent
MailSPF
NetDNSResolverProgrammable
Socket6
ArchiveZip
EmailAddressXS
NetLibIDN2
MaxMindDBReader
GeoIP
MailDMARC
MaxMindDBReaderXS
])
++ [
openssl
];
makeFlags = [
"PERL_BIN=${perlPackages.perl}/bin/perl"
"ENABLE_SSL=yes"
];
makeMakerFlags = [ "SYSCONFDIR=/etc LOCALSTATEDIR=/var/lib/spamassassin" ];
checkInputs =
(with perlPackages; [
TextDiff # t/strip2.t
])
++ [
coreutils # date, t/basic_meta.t
poppler-utils # pdftotext, t/extracttext.t
tesseract # tesseract, t/extracttext.t
iana-etc # t/dnsbl_subtests.t (/etc/protocols used by Net::DNS::Nameserver)
re2c
gcc
gnumake
];
preCheck = ''
substituteInPlace t/spamc_x_e.t \
--replace "/bin/echo" "${coreutils}/bin/echo"
export C_INCLUDE_PATH='${lib.makeSearchPathOutput "include" "include" [ libxcrypt ]}'
export HARNESS_OPTIONS="j''${NIX_BUILD_CORES}"
export HOME=$NIX_BUILD_TOP/home
mkdir -p $HOME
mkdir t/log # pre-create to avoid race conditions
# https://bz.apache.org/SpamAssassin/show_bug.cgi?id=8068
checkFlagsArray+=(TEST_FILES='$(shell find t -name *.t -not -name spamd_ssl_accept_fail.t)')
'';
postInstall = ''
mkdir -p $out/share/spamassassin
mv "rules/"* $out/share/spamassassin/
tar -xzf ${defaultRulesSrc} -C $out/share/spamassassin/
local moduleversion="$(${perlPackages.perl}/bin/perl -I lib -e 'use Mail::SpamAssassin; print $Mail::SpamAssassin::VERSION')"
sed -i -e "s/@@VERSION@@/$moduleversion/" $out/share/spamassassin/*.cf
for n in "$out/bin/"*; do
# Skip if this isn't a perl script
if ! head -n1 "$n" | grep -q bin/perl; then
continue
fi
echo "Wrapping $n for taint mode"
orig="$out/bin/.$(basename "$n")-wrapped"
mv "$n" "$orig"
# We don't inherit argv0 so that $^X works properly in e.g. sa-compile
makeWrapper "${perlPackages.perl}/bin/perl" "$n" \
--add-flags "-T $perlFlags $orig" \
--prefix PATH : ${
lib.makeBinPath [
gnupg
re2c
gcc
gnumake
]
} \
--prefix C_INCLUDE_PATH : ${lib.makeSearchPathOutput "include" "include" [ libxcrypt ]}
done
'';
meta = {
homepage = "https://spamassassin.apache.org/";
description = "Open-Source Spam Filter";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
qknight
qyliss
];
};
}

View File

@@ -0,0 +1,23 @@
diff -ru orig/t/sa_compile.t new/t/sa_compile.t
--- orig/t/sa_compile.t 2022-12-14 06:03:26.000000000 +0000
+++ new/t/sa_compile.t 2023-06-25 12:30:39.735577152 +0000
@@ -40,7 +40,7 @@
# we now have an "installed" version we can run sa-compile with. Ensure
# sarun() will use it appropriately
-$scr = "$instdir/$temp_binpath/spamassassin";
+$scr = "$perl_cmd -T $instdir/$temp_binpath/spamassassin";
$scr_localrules_args = $scr_cf_args = ""; # use the default rules dir, from our "install"
&set_rules('
@@ -86,8 +86,8 @@
# -------------------------------------------------------------------
rmtree( glob "~/.spamassassin/sa-compile.cache". { safe => 1 }); # reset test
-system_or_die "TMP=$instdir TMPDIR=$instdir $instdir/$temp_binpath/sa-compile --quiet -p $cwd/$workdir/user.cf --keep-tmps -D 2>$instdir/sa-compile.debug"; # --debug
-$scr = "$instdir/$temp_binpath/spamassassin";
+system_or_die "TMP=$instdir TMPDIR=$instdir $perl_cmd -T $instdir/$temp_binpath/sa-compile --quiet -p $cwd/$workdir/user.cf --keep-tmps -D 2>$instdir/sa-compile.debug"; # --debug
+$scr = "$perl_cmd -T $instdir/$temp_binpath/spamassassin";
$scr_localrules_args = $scr_cf_args = ""; # use the default rules dir, from our "install"
%patterns = (

View File

@@ -0,0 +1,18 @@
diff -ru orig/t/SATest.pm new/t/SATest.pm
--- orig/t/SATest.pm 2023-06-25 11:26:27.663204415 +0000
+++ new/t/SATest.pm 2023-06-25 11:34:08.902174669 +0000
@@ -65,9 +65,12 @@
# Clean PATH so taint doesn't complain
if (!$RUNNING_ON_WINDOWS) {
- $ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';
+ # untaint PATH
+ $ENV{'PATH'} =~ /^(.+)$/;
+ $ENV{'PATH'} = $1;
+ # $ENV{'PATH'} = '/bin:/usr/bin:/usr/local/bin';
# Remove tainted envs, at least ENV used in FreeBSD
- delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
+ # delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
} else {
# Windows might need non-system directories in PATH to run a Perl installation
# The best we can do is clean out obviously bad stuff such as relative paths or \..\

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "span-lite";
version = "0.11.0";
src = fetchFromGitHub {
owner = "martinmoene";
repo = "span-lite";
rev = "v${version}";
hash = "sha256-BYRSdGzIvrOjPXxeabMj4tPFmQ0wfq7y+zJf6BD/bTw=";
};
nativeBuildInputs = [
cmake
];
meta = {
description = "C++20-like span for C++98, C++11 and later in a single-file header-only library";
homepage = "https://github.com/martinmoene/span-lite";
license = lib.licenses.bsd1;
maintainers = with lib.maintainers; [ icewind1991 ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,112 @@
{
lib,
stdenv,
fetchurl,
autoPatchelfHook,
dpkg,
alsa-lib,
at-spi2-atk,
cairo,
cups,
dbus,
expat,
glib,
gtk3,
libGL,
libgbm,
libxkbcommon,
musl,
nspr,
nss,
pango,
udev,
xorg,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sparkle";
version = "1.6.12";
src =
let
selectSystem =
attrs:
attrs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
arch = selectSystem {
x86_64-linux = "amd64";
aarch64-linux = "arm64";
};
in
fetchurl {
url = "https://github.com/xishang0128/sparkle/releases/download/${finalAttrs.version}/sparkle-linux-${finalAttrs.version}-${arch}.deb";
hash = selectSystem {
x86_64-linux = "sha256-jExqA15faSvkjXMAvKMwDwsdBjijG3hOyf0j1J7jH/A=";
aarch64-linux = "sha256-1hZa5Dr+Fh9vc+066TNcvgH44Lgx5sebvMKSO+bh9B4=";
};
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
];
buildInputs = [
alsa-lib
at-spi2-atk
cairo
cups
dbus
expat
glib
gtk3
libGL
libgbm
libxkbcommon
musl
nspr
nss
pango
udev
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
(lib.getLib stdenv.cc.cc)
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
chmod 0755 opt/sparkle/resources/files/sysproxy
cp -r opt $out/opt
substituteInPlace usr/share/applications/sparkle.desktop \
--replace-fail "/opt/sparkle/sparkle" "sparkle"
cp -r usr/share $out/share
ln -s $out/opt/sparkle/sparkle $out/bin/sparkle
runHook postInstall
'';
preFixup = ''
patchelf --add-needed libGL.so.1 $out/opt/sparkle/sparkle
'';
passthru.updateScript = ./update.sh;
meta = {
description = "Another Mihomo GUI";
homepage = "https://github.com/xishang0128/sparkle";
license = lib.licenses.gpl3Plus;
mainProgram = "sparkle";
maintainers = [ ];
platforms = [
"aarch64-linux"
"x86_64-linux"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,17 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p bash nix curl coreutils common-updater-scripts nix-update jq
currentVersion=$(nix-instantiate --eval -E "with import ./. {}; sparkle.version or (lib.getVersion sparkle)" | tr -d '"')
latestVersion=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/xishang0128/sparkle/releases/latest | jq --raw-output .tag_name)
echo "latest version: $latestVersion"
echo "current version: $currentVersion"
if [[ "$latestVersion" == "$currentVersion" ]]; then
echo "package is up-to-date"
exit 0
fi
nix-update sparkle --version $latestVersion --system x86_64-linux
hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix-instantiate --eval -E "with import ./. {}; sparkle.src.url" --system aarch64-linux | tr -d '"')))
update-source-version sparkle $latestVersion $hash --system=aarch64-linux --ignore-same-version

View File

@@ -0,0 +1,314 @@
{
stdenv,
stdenvNoCC,
lib,
makeWrapper,
fetchurl,
makeDesktopItem,
copyDesktopItems,
autoPatchelfHook,
zulu24,
gtk3,
gsettings-desktop-schemas,
writeScript,
bash,
gnugrep,
tor,
zlib,
imagemagick,
gzip,
gnupg,
libusb1,
pcsclite,
udevCheckHook,
}:
let
pname = "sparrow";
version = "2.2.3";
openjdk = zulu24.override { enableJavaFX = true; };
sparrowArch =
{
x86_64-linux = "x86_64";
aarch64-linux = "aarch64";
}
."${stdenvNoCC.hostPlatform.system}";
# nixpkgs-update: no auto update
src = fetchurl {
url = "https://github.com/sparrowwallet/${pname}/releases/download/${version}/sparrowwallet-${version}-${sparrowArch}.tar.gz";
hash =
{
x86_64-linux = "sha256-MsERgfJGpxRkQm4Ww30Tc95kThjlgI+nO4bq2zNGdeU=";
aarch64-linux = "sha256-31x4Ck/+Fa6CvBb6o9ncVH99Zeh0DUVv/hqVN31ysHk=";
}
."${stdenvNoCC.hostPlatform.system}";
# nativeBuildInputs, downloadToTemp, and postFetch are used to verify the signed upstream package.
# The signature is not a self-contained file. Instead the SHA256 of the package is added to a manifest file.
# The manifest file is signed by the owner of the public key, Craig Raw.
# Thus to verify the signed package, the manifest is verified with the public key,
# and then the package is verified against the manifest.
# The public key is obtained from https://keybase.io/craigraw/pgp_keys.asc
# and is included in this repo to provide reproducibility.
nativeBuildInputs = [ gnupg ];
downloadToTemp = true;
postFetch = ''
pushd $(mktemp -d)
export GNUPGHOME=$PWD/gnupg
mkdir -m 700 -p $GNUPGHOME
ln -s ${manifest} ./manifest.txt
ln -s ${manifestSignature} ./manifest.txt.asc
ln -s $downloadedFile ./sparrowwallet-${version}-${sparrowArch}.tar.gz
gpg --import ${publicKey}
gpg --verify manifest.txt.asc manifest.txt
sha256sum -c --ignore-missing manifest.txt
popd
mv $downloadedFile $out
'';
};
manifest = fetchurl {
url = "https://github.com/sparrowwallet/${pname}/releases/download/${version}/${pname}-${version}-manifest.txt";
hash = "sha256-qPIllqFqe84BSIcYYYa+rKJvSpN/QnomHnsOoTxlyl4=";
};
manifestSignature = fetchurl {
url = "https://github.com/sparrowwallet/${pname}/releases/download/${version}/${pname}-${version}-manifest.txt.asc";
hash = "sha256-PpruG9l7MhI30b6dd96KAkkQvyMNuh36GtmEdYaRgac=";
};
publicKey = ./publickey.asc;
launcher = writeScript "sparrow" ''
#! ${bash}/bin/bash
params=(
-Dsun.security.smartcardio.library=${pcsclite.lib}/lib/libpcsclite.so.1
--module-path @out@/lib:@jdkModules@/modules
--add-opens=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls
--add-opens=javafx.graphics/javafx.scene=org.controlsfx.controls
--add-opens=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls
--add-opens=javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls
--add-opens=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls
--add-opens=javafx.base/com.sun.javafx.event=org.controlsfx.controls
--add-opens=javafx.controls/javafx.scene.control.cell=com.sparrowwallet.sparrow
--add-opens=org.controlsfx.controls/impl.org.controlsfx.skin=com.sparrowwallet.sparrow
--add-opens=org.controlsfx.controls/impl.org.controlsfx.skin=javafx.fxml
--add-opens=javafx.graphics/com.sun.javafx.tk=centerdevice.nsmenufx
--add-opens=javafx.graphics/com.sun.javafx.tk.quantum=centerdevice.nsmenufx
--add-opens=javafx.graphics/com.sun.glass.ui=centerdevice.nsmenufx
--add-opens=javafx.controls/com.sun.javafx.scene.control=centerdevice.nsmenufx
--add-opens=javafx.graphics/com.sun.javafx.menu=centerdevice.nsmenufx
--add-opens=javafx.graphics/com.sun.glass.ui=com.sparrowwallet.sparrow
--add-opens=javafx.graphics/javafx.scene.input=com.sparrowwallet.sparrow
--add-opens=javafx.graphics/com.sun.javafx.application=com.sparrowwallet.sparrow
--add-opens=java.base/java.net=com.sparrowwallet.sparrow
--add-opens=java.base/java.io=com.google.gson
--add-opens=java.smartcardio/sun.security.smartcardio=com.sparrowwallet.sparrow
--add-reads=com.sparrowwallet.merged.module=java.desktop
--add-reads=com.sparrowwallet.merged.module=java.sql
--add-reads=com.sparrowwallet.merged.module=com.sparrowwallet.sparrow
--add-reads=com.sparrowwallet.merged.module=ch.qos.logback.classic
--add-reads=com.sparrowwallet.merged.module=org.slf4j
--add-reads=com.sparrowwallet.merged.module=com.fasterxml.jackson.databind
--add-reads=com.sparrowwallet.merged.module=com.fasterxml.jackson.annotation
--add-reads=com.sparrowwallet.merged.module=com.fasterxml.jackson.core
--add-reads=com.sparrowwallet.merged.module=co.nstant.in.cbor
--add-reads=kotlin.stdlib=kotlinx.coroutines.core
-m com.sparrowwallet.sparrow
)
XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS ${openjdk}/bin/java ''${params[@]} $@
'';
torWrapper = writeScript "tor-wrapper" ''
#! ${bash}/bin/bash
exec ${tor}/bin/tor "$@"
'';
jdk-modules = stdenvNoCC.mkDerivation {
name = "jdk-modules";
nativeBuildInputs = [ openjdk ];
dontUnpack = true;
buildPhase = ''
# Extract the JDK's JIMAGE and generate a list of modules.
mkdir modules
pushd modules
jimage extract ${openjdk}/lib/modules
ls | xargs -d " " -- echo > ../manifest.txt
popd
'';
installPhase = ''
mkdir -p $out
cp manifest.txt $out/
cp -r modules/ $out/
'';
};
sparrow-modules = stdenvNoCC.mkDerivation {
pname = "sparrow-modules";
inherit version src;
nativeBuildInputs = [
makeWrapper
gzip
gnugrep
openjdk
autoPatchelfHook
(lib.getLib stdenv.cc.cc)
zlib
libusb1
];
buildPhase = ''
# Extract Sparrow's JIMAGE and generate a list of them.
mkdir modules
pushd modules
jimage extract ../lib/runtime/lib/modules
# Delete JDK modules
cat ${jdk-modules}/manifest.txt | xargs -I {} -- rm -fR {}
# Delete unneeded native libs.
rm -fR com.sparrowwallet.merged.module/com/sun/jna/freebsd-x86-64
rm -fR com.sparrowwallet.merged.module/com/sun/jna/freebsd-x86
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-arm
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-armel
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-mips64el
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-ppc
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-ppc64le
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-s390x
rm -fR com.sparrowwallet.merged.module/com/sun/jna/linux-x86
rm -fR com.sparrowwallet.merged.module/com/sun/jna/openbsd-x86-64
rm -fR com.sparrowwallet.merged.module/com/sun/jna/openbsd-x86
rm -fR com.sparrowwallet.merged.module/com/sun/jna/sunos-sparc
rm -fR com.sparrowwallet.merged.module/com/sun/jna/sunos-sparcv9
rm -fR com.sparrowwallet.merged.module/com/sun/jna/sunos-x86-64
rm -fR com.sparrowwallet.merged.module/com/sun/jna/sunos-x86
rm -fR com.github.sarxos.webcam.capture/com/github/sarxos/webcam/ds/buildin/lib/linux_armel
rm -fR com.github.sarxos.webcam.capture/com/github/sarxos/webcam/ds/buildin/lib/linux_armhf
rm -fR com.github.sarxos.webcam.capture/com/github/sarxos/webcam/ds/buildin/lib/linux_x86
rm -fR openpnp.capture.java/darwin-aarch64
rm -fR openpnp.capture.java/darwin-x86-64
rm -fR openpnp.capture.java/win32-x86-64
rm -fR com.nativelibs4java.bridj/org/bridj/lib/linux_arm32_armel
rm -fR com.nativelibs4java.bridj/org/bridj/lib/linux_armel
rm -fR com.nativelibs4java.bridj/org/bridj/lib/linux_armhf
rm -fR com.nativelibs4java.bridj/org/bridj/lib/linux_x86
rm -fR com.nativelibs4java.bridj/org/bridj/lib/sunos_x64
rm -fR com.nativelibs4java.bridj/org/bridj/lib/sunos_x86
rm -fR com.sparrowwallet.merged.module/linux-arm
rm -fR com.sparrowwallet.merged.module/linux-x86
rm -fR com.fazecast.jSerialComm/FreeBSD
rm -fR com.fazecast.jSerialComm/OpenBSD
rm -fR com.fazecast.jSerialComm/Android
rm -fR com.fazecast.jSerialComm/Solaris
ls | xargs -d " " -- echo > ../manifest.txt
find . | grep "\.so$" | xargs -- chmod ugo+x
popd
# Replace the embedded Tor binary (which is in a Tar archive)
# with one from Nixpkgs.
gzip -c ${torWrapper} > tor.gz
cp tor.gz modules/io.matthewnelson.kmp.tor.resource.exec.tor/io/matthewnelson/kmp/tor/resource/exec/tor/native/linux-libc/${sparrowArch}/tor.gz
'';
installPhase = ''
mkdir -p $out
cp manifest.txt $out/
cp -r modules/ $out/
'';
};
in
stdenvNoCC.mkDerivation rec {
inherit version src;
pname = "sparrow";
nativeBuildInputs = [
makeWrapper
copyDesktopItems
udevCheckHook
];
desktopItems = [
(makeDesktopItem {
name = "sparrow-desktop";
exec = "sparrow-desktop";
icon = "sparrow-desktop";
desktopName = "Sparrow Bitcoin Wallet";
genericName = "Bitcoin Wallet";
categories = [
"Finance"
"Network"
];
mimeTypes = [
"application/psbt"
"application/bitcoin-transaction"
"x-scheme-handler/bitcoin"
"x-scheme-handler/auth47"
"x-scheme-handler/lightning"
];
startupWMClass = "Sparrow";
})
];
sparrow-icons = stdenvNoCC.mkDerivation {
inherit version src;
pname = "sparrow-icons";
nativeBuildInputs = [ imagemagick ];
installPhase = ''
for n in 16 24 32 48 64 96 128 256; do
size=$n"x"$n
mkdir -p $out/hicolor/$size/apps
convert lib/Sparrow.png -resize $size $out/hicolor/$size/apps/sparrow-desktop.png
done;
'';
};
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out
ln -s ${sparrow-modules}/modules $out/lib
install -D -m 777 ${launcher} $out/bin/sparrow-desktop
substituteAllInPlace $out/bin/sparrow-desktop
substituteInPlace $out/bin/sparrow-desktop --subst-var-by jdkModules ${jdk-modules}
mkdir -p $out/share/icons
ln -s ${sparrow-icons}/hicolor $out/share/icons
mkdir -p $out/etc/udev/
ln -s ${sparrow-modules}/modules/com.sparrowwallet.lark/udev $out/etc/udev/rules.d
runHook postInstall
'';
doInstallCheck = true;
meta = with lib; {
description = "Modern desktop Bitcoin wallet application supporting most hardware wallets and built on common standards such as PSBT, with an emphasis on transparency and usability";
homepage = "https://sparrowwallet.com";
sourceProvenance = with sourceTypes; [
binaryBytecode
binaryNativeCode
];
license = licenses.asl20;
maintainers = with maintainers; [
emmanuelrosa
msgilligan
_1000101
];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
mainProgram = "sparrow-desktop";
};
}

View File

@@ -0,0 +1,90 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Comment: GPGTools - http://gpgtools.org
mQINBF2V8eEBEADmjYzGOpxEI0J7jQ1qFzlsrjF6NaBSq+UqKwPOL917pvI/8b/d
bI1gLV1kgIMAnwf3/JWkF4Ind0pk3g3Vj/jzTYg/ePSwjAhvhowoDo4va+AtV066
tRf3FjQYFCWR6ccN4zxmQxZ9QPOp4XIcXwu7Ce+ORRRiU9gkWXfiU64pmpzH89gz
LF35r+98+d9Ov6nAPhRSUlj+vk85mu6Lk8J26srHKWB7iXat1rl4lEAPpFtyvU6L
oO5XZoRPvXce3mByyuh8SDYTr6GVYjfPHWPaxcGrS/qTe2RCn3ec3xWSGT/U4xH0
TwagphjxlSnpeHDxZXG6wpgyVEcjpQ1M9hIK7z1G+SHuW4EoyaZf2llTsNbKvbV8
UOao6g5uAYeLQyBJPKExocNj7+DvbNrpRXYy1levrWtnkNS/oPx3wJgxeXL55uXC
MCcc5X5T6GNNAtBubAxtYRt65Q6Lvga7v6dWTDtvwufxfjtXZGFO/Hut4wS6IyTt
77i4GB/WeAQGGhPHGssVECd80u7/DEZ1EMcfTexsDJ9T1ZeM6orvAQ3i2DGdoiYt
/pJPd2g0LE1Q0HhSVC74JP0pUPJ7V/nzBVPXbYQTQWxESce+NUpnONs2uW+XNSxb
i0PoUwyDZsRQ7SZJZuOStBWqUXC8TUoGtkaRQHtBgumW0zHasgShVpkU+wARAQAB
tCNDcmFpZyBSYXcgPGNyYWlnQHNwYXJyb3d3YWxsZXQuY29tPokCVAQTAQoAPgIb
AwULCQgHAwUVCgkICwUWAgMBAAIeBQIXgBYhBNTQ0yAvwGhJolezjelGGDNMZ0tA
BQJlCacEBQkO+IMiAAoJEOlGGDNMZ0tAMZ0QAJtLTl8n/H2nn3nnuHMV18lLya+F
92/7Q5cSls+EPDzmhZnOY13aVlzL0y9++snRA6QrajyF5pxk5/t6OUcztg9PSSzz
dJ4SrjqF7nxSWXAybQLSWK0NmAZGC4cCkHuFwOOpTYTsGjUH0lMnvGF7PllQK0L7
8zKrNUpHHLWpkPBHfJEnGbv3XVG4DVWfdTAmpgSP/Lma3qRs5TRlr4pWbCQxUjd3
8QCw25PGT4xQ9g/yCWY1rBq2x7MzHsiuNmd/qCuwcXiSCChrlGUUVYWwp7FXkVFq
9wIJB7lYxOKbrwL8KcA2jQL0ZH9421+xfThCruMEnb3fPiW7y5VAbJKNLvk+WHa6
Vfj12+R3a3ZM2P8iExS6+d04xM0AXK4J5bIcpFW0D8GdjJyED6I7cAPF723xSws1
t9RD1rVslOlCvOJtoqATuWqGoTVAR4cdpdpnTywKZpjQowLdIcUPbW58zJQxmONh
vXoTzqvhQV2b9wRlrT+8gwlYmGh+P+xpR8nlHD7GQWoUC/mfWm4w6rMfX6xHBylC
SHB+teH+9lqUaefbbxKQlAbLL+3q7M4O4Dx224OZBvRN7MFnvBWJimhj8n7lJwfY
Pl7l/ZENqigiosH5XPLIXE8WhbT2SLh9a2Lp+qH8xrEcsUlUST+F0gE9qawTTl9X
RGfvr16YhNpScpBptB5DcmFpZyBSYXcgPGNyYWlncmF3QGdtYWlsLmNvbT6JAjYE
MAEKACAWIQTU0NMgL8BoSaJXs43pRhgzTGdLQAUCZQmpwgIdIAAKCRDpRhgzTGdL
QNX9D/4kl6JOsL4/P88m8i3SYW1N+FzCrr486Ak8zmfoPjtoSytk0+QIsjb5Esn4
ltU2UD7MPoPplky3TykNUbVqPr1LtSoabbxOOpz3kpHgkYN2KvH6Bv2H81kBF0k9
a8XYY92/73q7n7QiMmm6SNm0LO0QvHRu5KoCVQ+FyeLu4h4UqpK0RWtjIUUo6whO
hXO1ZkkAcV38gewbU92bQBnhLxQNm/EHs9g3Dx+dmhmym4yn0sfNxX+4MsLNMa6E
jcQ0YF+EgrQk9r8MF3NtPPFfzxswOThXNlEzie5ETAqcouT6mnlfTnB8UL4wjBoP
GueatUqvtO99RUZbM2otZdz1bBAmOQ/R92wcqsC46zY+PdIXX3YuiGVEfZHjuAU7
3FlajlZeWvp2NgZzLHFAjjWt67IeYkvfsv4bvq9EANXebI0Srq/g0o2Ego+kfBsZ
Ca+2jMgxo9+6X69+WJEe46G9bHatpl2dStylgWRhroEbkV83bIFwwE8Q9QOX4uJW
FB16kl/qTuBiG/rDgVT8eZuCYJXFKQtgPoslEramQuURyUfKFrOAyL7mQHHGSZab
mgI8kKI//DvTD3t/BspikmdgZLQL4zoXKIFFPuES+TQO+BHoB+TikjZC81mcyZOX
Sh+Eg21pO3B+HMOXkpv0aj3ZCUt55hslWUom8huQxY7sUdg4KIkCNgQwAQoAIBYh
BNTQ0yAvwGhJolezjelGGDNMZ0tABQJlCaa2Ah0gAAoJEOlGGDNMZ0tA4uYQAJuP
GEiE6/XO10lG8feXk5EIpTgFT8XiF7/CEFrGdPOgb/2HQ2G0QXGfrYI5VTJPdgsG
Mj2JgTcFX12fyKvGpb0HXMdvqNEtNUV4z5wrhUkItPFF4wJ2YAeFuJpdgsTU3RYL
mct30Dcr79M0JSsOO3erjAqsMj+GlTWbHMEzM86regfe0KTU9f4G8DIYRoM+Zu3E
P3BgpKm2miyEW++vuK+/Q+cWPSi7ztRPQ9CoswPb/xEFuxnzRCbdmwGqRUJzFfQJ
3uMTSt5JACn1mn/Bojn8IcAhCKJsBNL3MHAqkJVPdzzQhsr2z0bevVBhhbBabaub
zbFOIHluSge5/IGr7bFjldql/UflYavrV1+aH2CzI/YEgBxZZoIgYl9N5n+vO1GI
Xn39axQ4Lhf7mJc5Y89ojZkhT7sHgpCceyzsFWrBrcLXhhFCafTBcVQd+U1xk5Xf
SV+3TTbWz1woIzVJ6ef5wUYI0qZBuXDef6kIEBnFUwbn5Iu834NtthSkam9LeDcJ
NDISaoCOd+cRgKSTrGkLEIF7hzlF901S/jTDDaKGs9JnruhokxjmyxJvFcowP4Lo
O8J+782+e1QiL49M97tvnYwzLU/iGieG6kWgQcJHVy5ZJdDNMfkZMNR6Ek4dzBVQ
c5pgVp882o9l61xdCQq6o/oSBSCbOGe8Ujr1tGpXiQJUBBMBCgA+AhsDBQsJCAcD
BRUKCQgLBRYCAwEAAh4BAheAFiEE1NDTIC/AaEmiV7ON6UYYM0xnS0AFAmUJpwMF
CQ74gyIACgkQ6UYYM0xnS0Dnww//fMTpZ66XJK15CqbqqFHOlkneoV/X2Oo1CN/t
qIiG6s1TMA/ZwF1dmHSZh46tAd2TK0qTxR4kxXlVq5oO5HbzIA9n/hvJJA8ZXk3g
QieX4L5uITdHmAzChhf0N0jAQT8Oe72SocRMgPCI8c3ZKhBHYqI1PCTUSQKD6+dS
D0zHGZhtPJctDBJGVDCT8jaS4JeDVBU0UijzxLo6qkZvSIXoTxjQHQILFZq4biCs
2gLQ6aJ870TtQz/PiZkL+o5XImY+nPoAyEIC+mDSgO4kb5ELJ5U66vDMpR75FFpW
t/wU0/0q7W9wIzifdRuctVDyh88/5ycg4zrVyX0PmNrx27EGIhL1sEPfLnzMU7am
FqffWVtjvWrPtOiJE6vYRZA1IhallNY1eVI2NcEAj3+gSUsQx5rl7loP+axB7eSM
BKNUBlTptKrCMCWiYVrIFHDG7rHpNc/8G7mpjQCZtUyTNfRG87991JI9nAXHqntr
Slvr2t1TBaNkJQn06/Vx4StR8dNHvN09OzmriPibjxVXfW1fbiPD8mNPM1q1ll37
15IaZJLJfxA0tz5hhK1J9/asM80GMRfJmbGprZqkbDEFoi4QlLGJfYM5YeHi/TKB
j0IBS7Kh0rZ0y2YpwYRGJjeL+RMwRdbFV0vIayyZ8AS6mXbYVFfpgDnQQ2mJUkm2
XNpucCm5Ag0EXZXx4QEQAMkaRHXCSMDjBJ+7hQp5+OW7vhRb3jJ5RvveGJpMaV9z
/6UTo+VhI1AzkKKFZ/gwk7fJWm5cuE9fA6rc+h5eHbTtDkcPxAQk58YJyNdKj1t+
XncvU3Nhb8C/+cChQrnxAlQeFeSk2VUnxh7eTU4jwZo89N+cLJCzz0gIBbmOtTS6
zcdVaAhi0ePmD496kFxOz0ccGtukeXE38VdUM5PfSSEE8Cy+pokgFjyUSXBefW9u
XsETpw12KvF6xBizFYBTsMmGQQqxtk5bO/bQly61798gcFsxnrMPxBDyENJPkNEJ
s7tdCWEQB2dA8BZw7tN7sItVQabTmz4gUlmRSfsZfZbNZy7nL3zIBXRBZ6I9OPOp
m7BCUlOEQgJQru3RJdfnFVaNUURTd0Up+t+lACuUXXuMlrDbjAFlIGN0YR86JN6b
yAv2s9V5U/3R6QV50BRkj1qQehwUKRQYNMMeSs0I63zHgWOLjXwqr1O0U2/x+8o+
+UOUVCvsicQcl2CDLbC4C+xntZSKUwYmWtAWjkiDp5Fk2Fxyj9vK5TSym+ur3AAH
gZVugkoM5yMhiOIJVPKGB1aAnQNmQVYREEpJBTtFqbURraqObqiHKPF6MKAL+AW4
jv2Lms0gJ2S5rSmP/Zi0CiABYg1pppojYlrHp1vXb251o7WlPgwf6nKKLTi8byTN
ABEBAAGJAjwEGAEKACYCGwwWIQTU0NMgL8BoSaJXs43pRhgzTGdLQAUCZQmnLAUJ
DviDSwAKCRDpRhgzTGdLQNAwD/0ThrnXqwZ+dyFK4M73nqSXwWjED/xHAQYmrEAr
kVoox3GZYlTFlQlCQZTi+yOsrFdiP7EfWM8jbc6BqEh4fhn1f+wUIiZQELl+6M/U
rHrPz5h4c9rD/+M62awPa6HdauaHkUrF3nAax9EOTVQJvxKLpuaE9Ki9p2ZMEQOK
HakTDtLL2BeXiJG1I/SH1thBPuGL4hReY8qrj0ryYMrlYdu7l+RJrQUemLVD/eQI
S8MqH8E5HjZKS7QNSCEEeHgFw1Yu28C+AnjHQHS5gDugw8ire/NetFxI8Wx5nOOU
oCRR3P1U5IFWqj+Yukc3rB0z9+kSK3cic1jdCRy26JYxz9xuBbAqcnKoGtrB3HVI
Y2pdQKN4kTpifGDriSEe6epuEvvObBovYJE3lc4AWr8VNFJd4UYphJ/9Px+5xajo
ZBicNI9pGq0gTDuBb+tBwTt2dw8tFSCLyJ+C1dFRZX8NM3FlnpjeJQb7SCcLT4PZ
h4+CyElfF/HkcVZHjjanpXZdP91clgmRidnlDBQ07BmaTgvxdlkwHJFGqGcuZn1A
y1p23CECTYiFxFxgMvVjNHSPSyrEnNC0ash+BIGuxvYfm/7CioThFXw9TbwQXn6C
IsgINPAvnKVmW6Ui0jLvtlIWV/TW2yDFjPoC2ilVexwt9QdvtBf5baT8GCilb5Yo
EmR2yA==
=t5JY
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -0,0 +1,102 @@
{
lib,
stdenv,
copyPkgconfigItems,
fetchFromGitHub,
makePkgconfigItem,
pkg-config,
SDL,
SDL_image,
SDL_mixer,
SDL_net,
SDL_ttf,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sparrow3d";
version = "unstable-2020-10-06";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "theZiz";
repo = "sparrow3d";
rev = "2033349d7adeba34bda2c442e1fec22377471134";
hash = "sha256-28j5nbTYBrMN8BQ6XrTlO1D8Viw+RiT3MAl99BAbhR4=";
};
pkgconfigItems = [
(makePkgconfigItem rec {
name = "sparrow3d";
inherit (finalAttrs) version;
inherit (finalAttrs.meta) description;
cflags = [ "-isystem${variables.includedir}" ];
libs = [
"-L${variables.libdir}"
"-lsparrow3d"
"-lsparrowNet"
"-lsparrowSound"
];
variables = rec {
prefix = "@dev@";
exec_prefix = "@out@";
includedir = "${prefix}/include";
libdir = "${exec_prefix}/lib";
};
})
];
nativeBuildInputs = [
copyPkgconfigItems
pkg-config
];
propagatedBuildInputs = [
(lib.getDev SDL)
SDL_image
SDL_ttf
SDL_mixer
SDL_net
];
postConfigure = ''
NIX_CFLAGS_COMPILE=$(pkg-config --cflags SDL_image SDL_ttf SDL_mixer SDL_net)
'';
buildFlags = [ "dynamic" ];
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp libsparrow{3d,Net,Sound}.so $out/lib
mkdir -p $dev/include
cp sparrow*.h $dev/include
runHook postInstall
'';
doCheck = true;
checkPhase = ''
runHook preCheck
make all_no_static
./testfile.sh
runHook postCheck
'';
meta = {
homepage = "https://github.com/theZiz/sparrow3d";
description = "Software renderer for different open handhelds like the gp2x, wiz, caanoo and pandora";
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [ colinsane ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,16 @@
prefix=@out@
includedir=${prefix}/include
libdir=${prefix}/lib
Name: sparrow3d
Description: a software renderer for different open handhelds like the gp2x, wiz, caanoo and pandora
URL: https://github.com/theZiz/sparrow3d
Version: @version@
Requires: \
sdl \
SDL_image \
SDL_ttf \
SDL_mixer \
SDL_net
Cflags: -isystem${includedir}
Libs: -L${libdir} -lsparrow3d -lsparrowNet -lsparrowSound

View File

@@ -0,0 +1,69 @@
{
callPackage,
fetchgit,
lib,
stdenv,
gtk3,
pkg-config,
libxml2,
llvm,
perl,
sqlite,
}:
let
GCC_BASE = "${stdenv.cc.cc}/lib/gcc/${stdenv.hostPlatform.uname.processor}-unknown-linux-gnu/${stdenv.cc.cc.version}";
in
stdenv.mkDerivation {
pname = "sparse";
version = "0.6.4-unstable-2024-02-03";
src = fetchgit {
url = "https://git.kernel.org/pub/scm/devel/sparse/sparse.git";
rev = "0196afe16a50c76302921b139d412e82e5be2349";
hash = "sha256-Fft3hm988Xw92WIwXEoVoX7xzzkDhKy+bn9YuQIOhSk=";
};
preConfigure = ''
sed -i 's|"/usr/include"|"${stdenv.cc.libc.dev}/include"|' pre-process.c
sed -i 's|qx(\$ccom -print-file-name=)|"${GCC_BASE}"|' cgcc
'';
makeFlags = [
"PREFIX=${placeholder "out"}"
];
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gtk3
libxml2
llvm
perl
sqlite
];
doCheck = true;
buildFlags = [ "GCC_BASE:=${GCC_BASE}" ];
# Test failures with "fortify3" on, such as:
# +*** buffer overflow detected ***: terminated
# +Aborted (core dumped)
# error: Actual exit value does not match the expected one.
# error: expected 0, got 134.
# error: FAIL: test 'bool-float.c' failed
hardeningDisable = [ "fortify3" ];
passthru.tests = {
simple-execution = callPackage ./tests.nix { };
};
meta = with lib; {
description = "Semantic parser for C";
homepage = "https://git.kernel.org/pub/scm/devel/sparse/sparse.git/";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [
thoughtpolice
jkarlson
];
};
}

View File

@@ -0,0 +1,36 @@
{
runCommand,
gcc,
sparse,
writeText,
}:
let
src = writeText "CODE.c" ''
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
return EXIT_SUCCESS;
}
'';
in
runCommand "${sparse.pname}-tests"
{
buildInputs = [
gcc
sparse
];
meta.timeout = 3;
}
''
set -eu
${sparse}/bin/cgcc ${src} > output 2>&1 || ret=$?
if [[ -z $(<output) ]]; then
mv output $out
else
echo "Test build returned $ret"
cat output
exit 1
fi
''

View File

@@ -0,0 +1,25 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "sparsehash";
version = "2.0.4";
src = fetchFromGitHub {
owner = "sparsehash";
repo = "sparsehash";
rev = "sparsehash-${version}";
sha256 = "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7";
};
meta = with lib; {
homepage = "https://github.com/sparsehash/sparsehash";
description = "Extremely memory-efficient hash_map implementation";
platforms = platforms.all;
license = licenses.bsd3;
maintainers = with maintainers; [ pSub ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
gmp,
gcc,
openssl,
zlib,
}:
stdenv.mkDerivation {
pname = "spasm-ng";
version = "unstable-2022-07-05";
src = fetchFromGitHub {
owner = "alberthdev";
repo = "spasm-ng";
rev = "5f0786d38f064835be674d4b7df42969967bb73c";
sha256 = "sha256-j7Z3oI+J0wZF4EG5OMMjuDe2o69KKGuJvfyHNPTLrXM=";
};
# GCC is needed for Darwin
nativeBuildInputs = [
makeWrapper
gcc
];
buildInputs = [
gmp
openssl
zlib
];
enableParallelBuilding = true;
installPhase = ''
runHook preInstall
install -Dm755 spasm -t $out/bin
install -Dm555 inc/*.inc -t $out/include
runHook postInstall
'';
postFixup = ''
wrapProgram $out/bin/spasm --add-flags "-I $out/include"
'';
meta = with lib; {
homepage = "https://github.com/alberthdev/spasm-ng";
description = "Z80 assembler with extra features to support development for TI calculators";
mainProgram = "spasm";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ siraben ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
gccStdenv,
fetchurl,
bison,
flex,
}:
let
baseVersion = "3";
minorVersion = "9";
extraTools =
"FLOTTER prolog2dfg dfg2otter dfg2dimacs dfg2tptp"
+ " dfg2ascii dfg2dfg tptp2dfg dimacs2dfg pgen rescmp";
in
gccStdenv.mkDerivation {
pname = "spass";
version = "${baseVersion}.${minorVersion}";
src = fetchurl {
url = "http://www.spass-prover.org/download/sources/spass${baseVersion}${minorVersion}.tgz";
sha256 = "11cyn3kcff4r79rsw2s0xm6rdb8bi0kpkazv2b48jhcms7xw75qp";
};
sourceRoot = ".";
nativeBuildInputs = [
bison
flex
];
buildPhase = ''
make RM="rm -f" proparser.c ${extraTools} opt
'';
installPhase = ''
mkdir -p $out/bin
install -m0755 SPASS ${extraTools} $out/bin/
'';
meta = with lib; {
description = "Automated theorem prover for first-order logic";
maintainers = with maintainers; [
raskin
];
platforms = platforms.unix;
license = licenses.bsd2;
downloadPage = "http://www.spass-prover.org/download/index.html";
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
ocamlPackages,
fetchFromGitHub,
scdoc,
}:
ocamlPackages.buildDunePackage rec {
pname = "spatial-shell";
version = "7";
src = fetchFromGitHub {
owner = "lthms";
repo = "spatial-shell";
rev = version;
hash = "sha256-OeNBP/jea1ABh/WpvCP7We+L20WoTfLZH71raH7bKPI=";
};
nativeBuildInputs = [
scdoc
];
buildInputs = with ocamlPackages; [
cmdliner
ezjsonm-encoding
poll
];
meta = {
description = "Implementing a spatial model inspired by Material Shell, for i3 and sway";
homepage = "https://spatial-shell.app";
changelog = "https://github.com/lthms/spatial-shell/blob/${src.rev}/CHANGES.md";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ fgaz ];
mainProgram = "spatial";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
desktopToDarwinBundle,
curl,
freexl,
geos,
libpq,
librasterlite2,
librttopo,
libspatialite,
libwebp,
libxlsxwriter,
libxml2,
lz4,
minizip,
openjpeg,
proj,
sqlite,
virtualpg,
wxGTK32,
xz,
zstd,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spatialite-gui";
version = "2.1.0-beta1";
src = fetchurl {
url = "https://www.gaia-gis.it/gaia-sins/spatialite-gui-sources/spatialite_gui-${finalAttrs.version}.tar.gz";
hash = "sha256-ukjZbfGM68P/I/aXlyB64VgszmL0WWtpuuMAyjwj2zM=";
};
nativeBuildInputs = [
libpq.pg_config
pkg-config
]
++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
buildInputs = [
curl
freexl
geos
libpq
librasterlite2
librttopo
libspatialite
libwebp
libxlsxwriter
libxml2
lz4
minizip
openjpeg
proj
sqlite
virtualpg
wxGTK32
xz
zstd
];
enableParallelBuilding = true;
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
rm -fr $out/share
'';
meta = {
description = "Graphical user interface for SpatiaLite";
homepage = "https://www.gaia-gis.it/fossil/spatialite_gui";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.unix;
teams = [ lib.teams.geospatial ];
mainProgram = "spatialite_gui";
};
})

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
freexl,
geos,
expat,
librttopo,
libspatialite,
libxml2,
libz,
minizip,
proj,
readosm,
sqlite,
testers,
spatialite-tools,
}:
stdenv.mkDerivation rec {
pname = "spatialite-tools";
version = "5.1.0a";
src = fetchurl {
url = "https://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/spatialite-tools-${version}.tar.gz";
hash = "sha256-EZ40dY6AiM27Q+2BtKbq6ojHZLC32hkAGlUUslRVAc4=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
expat
freexl
geos
librttopo
libspatialite
libxml2
libz
minizip
proj
readosm
sqlite
];
env = {
NIX_LDFLAGS = toString [
"-lxml2"
(lib.optionalString stdenv.hostPlatform.isDarwin "-liconv")
];
};
enableParallelBuilding = true;
passthru.tests.version = testers.testVersion {
package = spatialite-tools;
command = "! spatialite_tool --version";
version = "${libspatialite.version}";
};
meta = {
description = "Complete sqlite3-compatible CLI front-end for libspatialite";
homepage = "https://www.gaia-gis.it/fossil/spatialite-tools";
license = with lib.licenses; [
mpl11
gpl2Plus
lgpl21Plus
];
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ dotlambda ];
teams = [ lib.teams.geospatial ];
mainProgram = "spatialite_tool";
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
stdenv,
fetchurl,
meson,
ninja,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spawn-fcgi";
version = "1.6.6";
src = fetchurl {
url = "https://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-${finalAttrs.version}.tar.xz";
hash = "sha256-yWI0XuzwVT7dm/XPYe5F59EYN/NANwZ/vaFlz0rdzhg=";
};
nativeBuildInputs = [
meson
ninja
];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-Wno-implicit-function-declaration";
meta = with lib; {
homepage = "https://redmine.lighttpd.net/projects/spawn-fcgi";
description = "Provides an interface to external programs that support the FastCGI interface";
mainProgram = "spawn-fcgi";
license = licenses.bsd3;
maintainers = [ ];
platforms = with platforms; unix;
};
})

View File

@@ -0,0 +1,143 @@
{
lib,
stdenv,
fetchFromGitHub,
ncurses,
python3,
cunit,
dpdk,
fuse3,
libaio,
libbsd,
libuuid,
numactl,
openssl,
pkg-config,
zlib,
zstd,
libpcap,
libnl,
elfutils,
fetchurl,
jansson,
ensureNewerSourcesForZipFilesHook,
runtimeShell,
}:
let
# downgrade dpdk because spdk refuses newer versions at runtime
# url: https://github.com/spdk/spdk/blob/3e3577a090ed9a084b5909aadcc8bc5fe93c0017/lib/env_dpdk/pci_dpdk.c#L77
dpdk' = dpdk.overrideAttrs (oldAttrs: rec {
version = "25.03";
src = fetchurl {
url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
sha256 = "sha256-akCnMTKChuvXloWxj/pZkua3cME4Q9Zf0NEVfPzP9j0=";
};
});
in
stdenv.mkDerivation rec {
pname = "spdk";
version = "25.05";
src = fetchFromGitHub {
owner = "spdk";
repo = "spdk";
tag = "v${version}";
hash = "sha256-Js78FLkLN4GpJlgO+h4jIiEdThciBugbLTB6elFi2TI=";
fetchSubmodules = true;
};
nativeBuildInputs = [
python3
python3.pkgs.pip
python3.pkgs.hatchling
python3.pkgs.wheel
python3.pkgs.wrapPython
pkg-config
ensureNewerSourcesForZipFilesHook
];
buildInputs = [
cunit
dpdk'
fuse3
jansson
libaio
libbsd
elfutils
libuuid
libpcap
libnl
numactl
openssl
ncurses
zlib
zstd
];
propagatedBuildInputs = [
python3.pkgs.configshell-fb
];
postPatch = ''
patchShebangs .
# Override pip install command to use hatchling directly without downloading dependencies
substituteInPlace python/Makefile \
--replace-fail "setup_cmd = pip install --prefix=\$(CONFIG_PREFIX)" \
"setup_cmd = python3 -m pip install --no-deps --no-build-isolation --prefix=\$(CONFIG_PREFIX)"
'';
enableParallelBuilding = true;
configureFlags = [
"--with-dpdk=${dpdk'}"
]
++ lib.optional (!stdenv.hostPlatform.isStatic) "--with-shared";
# spdk does shenanigans with patchelf, so we need to stop them from messing with rpath
preInstall = ''
patchelf() { true; }
export -f patchelf
'';
postInstall = ''
unset patchelf
# SPDK scripts assume that they can read the includes also relative to the scripts.
# Therefore we are not copying them into $out/share.
mkdir $out/scripts
cp ./scripts/common.sh ./scripts/setup.sh $out/scripts
cat > $out/bin/spdk-setup << EOF
#!${runtimeShell}
exec $out/scripts/setup.sh "\$@"
EOF
chmod +x $out/bin/spdk-setup
'';
postCheck = ''
python3 -m spdk
'';
postFixup = ''
wrapPythonPrograms
${lib.optionalString (!stdenv.hostPlatform.isStatic) ''
# .pc files are not working properly with static linking and might just confuse other build systems
rm $out/lib/*.a
''}
'';
env.NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
passthru.dpdk = dpdk';
meta = with lib; {
description = "Set of libraries for fast user-mode storage";
homepage = "https://spdk.io/";
license = licenses.bsd3;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ orivej ];
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
fmt,
catch2_3,
staticBuild ? stdenv.hostPlatform.isStatic,
# passthru
bear,
tiledb,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spdlog";
version = "1.15.3";
src = fetchFromGitHub {
owner = "gabime";
repo = "spdlog";
tag = "v${finalAttrs.version}";
hash = "sha256-0rOR9G2Y4Z4OBZtUHxID0s1aXN9ejodHrurlVCA0pIo=";
};
patches = [
# https://github.com/gabime/spdlog/pull/3451
(fetchpatch {
name = "catch2-3.9.0-compat.patch";
url = "https://github.com/gabime/spdlog/commit/3edc8036dbf3c7cdf0e460a913ae294c87ae90dc.patch";
hash = "sha256-0XtNaAvDGpSTtQZjxmLbHOoY4OMZDJfLDzBh7gNQh2c=";
})
];
nativeBuildInputs = [ cmake ];
# Required to build tests, even if they aren't executed
buildInputs = [ catch2_3 ];
propagatedBuildInputs = [ fmt ];
cmakeFlags = [
(lib.cmakeBool "SPDLOG_BUILD_SHARED" (!staticBuild))
(lib.cmakeBool "SPDLOG_BUILD_STATIC" staticBuild)
(lib.cmakeBool "SPDLOG_BUILD_EXAMPLE" false)
(lib.cmakeBool "SPDLOG_BUILD_BENCH" false)
(lib.cmakeBool "SPDLOG_BUILD_TESTS" true)
(lib.cmakeBool "SPDLOG_FMT_EXTERNAL" true)
];
outputs = [
"out"
"doc"
"dev"
];
postInstall = ''
mkdir -p $out/share/doc/spdlog
cp -rv ../example $out/share/doc/spdlog
substituteInPlace $dev/include/spdlog/tweakme.h \
--replace-fail \
'// #define SPDLOG_FMT_EXTERNAL' \
'#define SPDLOG_FMT_EXTERNAL'
'';
doCheck = true;
passthru = {
tests = {
inherit bear tiledb;
};
updateScript = nix-update-script { };
};
meta = {
description = "Very fast, header only, C++ logging library";
homepage = "https://github.com/gabime/spdlog";
changelog = "https://github.com/gabime/spdlog/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ obadz ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,63 @@
{
stdenvNoCC,
lib,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "spdx-license-list-data";
version = "3.27.0";
src = fetchFromGitHub {
owner = "spdx";
repo = "license-list-data";
rev = "v${version}";
hash = "sha256-TRrsxk+gtxI9KqJvFzD0Cfy1h5cZAJ2kT9KUARjlXcY=";
};
# List of file formats to package.
_types = [
"html"
"json"
"jsonld"
"rdfa"
"rdfnt"
"rdfturtle"
"rdfxml"
"template"
"text"
];
outputs = [ "out" ] ++ _types;
dontPatch = true;
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -pv $out
for t in $_types
do
_outpath=''${!t}
mkdir -pv $_outpath
cp -ar $t $_outpath && echo "$t format installed"
done
runHook postInstall
'';
dontFixup = true;
meta = with lib; {
description = "Various data formats for the SPDX License List";
homepage = "https://github.com/spdx/license-list-data";
license = licenses.cc0;
maintainers = with maintainers; [
oxzi
c0bw3b
];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,75 @@
{
stdenv,
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
alsa-lib,
udevCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "speakersafetyd";
version = "1.1.2";
src = fetchFromGitHub {
owner = "AsahiLinux";
repo = "speakersafetyd";
tag = finalAttrs.version;
hash = "sha256-sSGoF2c5HfPM2FBrBJwJ9NvExYijGx6JH1bJp3epfe0=";
};
cargoHash = "sha256-9XbrIY1VwnHtqi/ZfS952SyjNjA/TJRdOqCsPReZI8o=";
patches = [
./remove-install-paths.patch
];
nativeBuildInputs = [
pkg-config
udevCheckHook
];
buildInputs = [ alsa-lib ];
postPatch = ''
substituteInPlace speakersafetyd.service \
--replace-fail "User=speakersafetyd" \
"" \
--replace-fail "/usr" \
"$out"
substituteInPlace Makefile \
--replace-fail "target/release" \
"target/${stdenv.hostPlatform.rust.cargoShortTarget}/$cargoBuildType" \
'';
installFlags = [
"DESTDIR=$(out)"
"BINDIR=bin"
"UNITDIR=lib/systemd/system"
"UDEVDIR=lib/udev/rules.d"
"SHAREDIR=share"
"TMPFILESDIR=lib/tmpfiles.d"
];
dontCargoInstall = true;
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Userspace daemon that implements the Smart Amp protection model";
mainProgram = "speakersafetyd";
homepage = "https://github.com/AsahiLinux/speakersafetyd";
maintainers = with lib.maintainers; [
normalcea
flokli
yuka
];
license = lib.licenses.mit;
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,16 @@
diff --git a/Makefile b/Makefile
index 41bf7b4..ca14be7 100644
--- a/Makefile
+++ b/Makefile
@@ -24,11 +24,8 @@ install-data:
install -pm0644 95-speakersafetyd.rules $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules
install -dDm0755 $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple
install -pm0644 -t $(DESTDIR)/$(SHAREDIR)/speakersafetyd/apple $(wildcard conf/apple/*)
- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd
- install -dDm0700 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/$(VARDIR)/lib/speakersafetyd/blackbox
install -dDm0755 $(DESTDIR)/$(TMPFILESDIR)
install -pm0644 speakersafetyd.tmpfiles $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf
- install -dDm0755 -o $(SPEAKERSAFETYD_USER) -g $(SPEAKERSAFETYD_GROUP) $(DESTDIR)/run/speakersafetyd
uninstall:
rm -f $(DESTDIR)/$(BINDIR)/speakersafetyd $(DESTDIR)/$(UNITDIR)/speakersafetyd.service $(DESTDIR)/$(UDEVDIR)/95-speakersafetyd.rules $(DESTDIR)/$(TMPFILESDIR)/speakersafetyd.conf

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "specr-transpile";
version = "0.1.25";
src = fetchCrate {
inherit pname version;
hash = "sha256-yB4b7VaZ22zk8jhQijBOWRks22TV19q9IQNlVXyBlss=";
};
cargoHash = "sha256-pMkvyMGfvLdj406xH/1+ZHE33iZDcmUUBjeSiIro0xY=";
meta = with lib; {
description = "Converts Specr lang code to Rust";
mainProgram = "specr-transpile";
homepage = "https://github.com/RalfJung/minirust-tooling";
license = with licenses; [
asl20
mit
];
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libjack2,
lv2,
glib,
qt5,
libao,
cairo,
libsndfile,
fftwFloat,
}:
stdenv.mkDerivation rec {
pname = "spectmorph";
version = "0.6.1";
src = fetchurl {
url = "https://github.com/swesterfeld/spectmorph/releases/download/${version}/${pname}-${version}.tar.bz2";
hash = "sha256-H/PaczAkjxeu2Q6S/jazZ0PU9oCmhBzsLgbGLusxXm8=";
};
buildInputs = [
libjack2
lv2
glib
qt5.qtbase
libao
cairo
libsndfile
fftwFloat
];
nativeBuildInputs = [ pkg-config ];
dontWrapQtApps = true;
meta = with lib; {
description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds";
homepage = "https://spectmorph.org";
license = licenses.gpl3;
platforms = [
"x86_64-linux"
"i686-linux"
];
maintainers = [ maintainers.magnetophon ];
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
eigen,
}:
stdenv.mkDerivation rec {
pname = "spectra";
version = "1.2.0";
src = fetchFromGitHub {
owner = "yixuan";
repo = "spectra";
rev = "v${version}";
sha256 = "sha256-lfbOwnTP3GrN/1N/tyMXZrtEHIxAq3EjuHS8M+I87to=";
};
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = [ eigen ];
meta = with lib; {
homepage = "https://spectralib.org/";
description = "C++ library for large scale eigenvalue problems, built on top of Eigen";
license = licenses.mpl20;
maintainers = with maintainers; [ vonfry ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,109 @@
{
lib,
buildNpmPackage,
stdenv,
fetchYarnDeps,
yarnConfigHook,
fetchFromGitHub,
typescript,
jq,
fetchpatch,
}:
let
# Instead of the build script that spectral-language-server provides (ref: https://github.com/luizcorreia/spectral-language-server/blob/master/script/vscode-spectral-build.sh), we build vscode-spectral manually.
# This is because the script must go through the network and will not work under the Nix sandbox environment.
vscodeSpectral = stdenv.mkDerivation (finalAttrs: {
pname = "vscode-spectral";
version = "1.1.2";
src = fetchFromGitHub {
owner = "stoplightio";
repo = "vscode-spectral";
rev = "v${finalAttrs.version}";
hash = "sha256-TWy+bC6qhTKDY874ORTBbvCIH8ycpmBiU8GLYxBIiAs=";
};
offlineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-am27A9VyFoXuOlgG9mnvNqV3Q7Bi7GJzDqqVFGDVWIA=";
};
nativeBuildInputs = [
typescript
jq
yarnConfigHook
];
postPatch = ''
cp server/tsconfig.json server/tsconfig.json.bak
jq '.compilerOptions += {"module": "NodeNext", "moduleResolution": "NodeNext"}' server/tsconfig.json.bak > server/tsconfig.json
'';
buildPhase = ''
runHook preBuild
# FIXME: vscode-spactral depends on @rollup/pluginutils, but it may have a bug that doesn't provide the type definitions for NodeNext module resolution. (ref: https://github.com/rollup/plugins/issues/1192)
# tsc detects some type errors in the code. However we ignore this because it's not a problem for the final build if server/dist is generated.
tsc -p server || true
test -d server/dist
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out
cp -R server/dist $out
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/stoplightio/vscode-spectral";
description = "VS Code extension bringing the awesome Spectral JSON/YAML linter with OpenAPI/AsyncAPI support";
license = licenses.asl20;
};
});
in
buildNpmPackage {
pname = "spectral-language-server";
version = "1.0.8-unstable-2023-06-06";
src = fetchFromGitHub {
owner = "luizcorreia";
repo = "spectral-language-server";
rev = "c9a7752b08e6bba937ef4f5435902afd41b6957f";
hash = "sha256-VD2aAzlCnJ6mxPUSbNRfMOlslM8kLPqrAI2ah6sX9cU=";
};
npmDepsHash = "sha256-ixAXy/rRkyWL3jdAkrXJh1qhWcKIkr5nH/Bhu2JV6k8=";
patches = [
# https://github.com/luizcorreia/spectral-language-server/pull/15
(fetchpatch {
name = "fix-package-lock.patch";
url = "https://github.com/luizcorreia/spectral-language-server/commit/909704850dd10e7b328fc7d15f8b07cdef88899d.patch";
hash = "sha256-+mN93xP4HCll4dTcnh2W/m9k3XovvgnB6AOmuJpZUZ0=";
})
];
dontNpmBuild = true;
npmFlags = [ "--ignore-scripts" ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
mkdir -p $out/node_modules
mkdir -p $out/dist/spectral-language-server
cp -R ${vscodeSpectral}/dist/* $out/dist/spectral-language-server/
cp ./bin/* $out/bin
cp -R ./node_modules/* $out/node_modules
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/luizcorreia/spectral-language-server";
description = "Awesome Spectral JSON/YAML linter with OpenAPI/AsyncAPI support";
maintainers = with maintainers; [ momeemt ];
license = licenses.mit;
mainProgram = "spectral-language-server";
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitLab,
cmake,
libsodium,
json_c,
ncurses,
libxml2,
jq,
}:
stdenv.mkDerivation rec {
pname = "spectre-cli";
version = "unstable-2022-02-05";
src = fetchFromGitLab {
owner = "spectre.app";
repo = "cli";
rev = "a5e7aab28f44b90e5bd1204126339a81f64942d2";
sha256 = "1hp4l1rhg7bzgx0hcai08rvcy6l9645sfngy2cr96l1bpypcld5i";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
libxml2
jq
];
buildInputs = [
libsodium
json_c
ncurses
];
cmakeFlags = [
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
"-DBUILD_SPECTRE_TESTS=ON"
];
preConfigure = ''
echo "${version}" > VERSION
# The default buildPhase wants to create a ´build´ dir so we rename the build script to stop conflicts.
mv build build.sh
'';
# Some tests are expected to fail on ARM64
# See: https://gitlab.com/spectre.app/cli/-/issues/27#note_962950844
doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
checkPhase = ''
mv ../spectre-cli-tests ../spectre_tests.xml ./
patchShebangs spectre-cli-tests
export HOME=$(mktemp -d)
./spectre-tests
./spectre-cli-tests
'';
installPhase = ''
mkdir -p $out/bin
mv spectre $out/bin
'';
meta = with lib; {
description = "Stateless cryptographic identity algorithm";
homepage = "https://spectre.app";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ emmabastas ];
mainProgram = "spectre";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,49 @@
{
binutils-unwrapped,
coreutils,
fetchFromGitHub,
lib,
makeBinaryWrapper,
stdenv,
unstableGitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spectre-meltdown-checker";
version = "0.46-unstable-2024-08-04";
src = fetchFromGitHub {
owner = "speed47";
repo = "spectre-meltdown-checker";
rev = "34c6095912d115551f69435a55d6e0445932fdf9";
hash = "sha256-m0f0+AFPrB2fPNd1SkSj6y9PElTdefOdI51Jgfi816w=";
};
passthru.updateScript = unstableGitUpdater { };
prePatch = ''
substituteInPlace spectre-meltdown-checker.sh \
--replace-fail /bin/echo ${coreutils}/bin/echo
'';
nativeBuildInputs = [ makeBinaryWrapper ];
installPhase = ''
runHook preInstall
install -Dm755 spectre-meltdown-checker.sh $out/bin/spectre-meltdown-checker
wrapProgram $out/bin/spectre-meltdown-checker \
--prefix PATH : ${lib.makeBinPath [ binutils-unwrapped ]}
runHook postInstall
'';
meta = {
description = "Spectre & Meltdown vulnerability/mitigation checker for Linux";
mainProgram = "spectre-meltdown-checker";
homepage = "https://github.com/speed47/spectre-meltdown-checker";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.dotlambda ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libjack2,
fftwFloat,
gtk2,
}:
stdenv.mkDerivation rec {
pname = "spectrojack";
version = "0.4.1";
src = fetchurl {
url = "http://sed.free.fr/spectrojack/${pname}-${version}.tar.gz";
sha256 = "1kiwx0kag7kq7rhg0bvckfm8r7pqmbk76ppa39cq2980jb5v8rfp";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libjack2
fftwFloat
gtk2
];
configurePhase = ''
runHook preConfigure
sed -i 's/.*home.*/#&/' ./Makefile
substituteInPlace ./Makefile \
--replace "/usr/share" "$out/usr/share"
runHook postConfigure
'';
installPhase = ''
install -Dm755 spectrojack $out/bin/spectrojack
install -Dm644 spectrojack_icon.svg $out/usr/share/spectrojack/icon.svg
install -Dm644 -t $out/usr/share/spectrojack/colormaps colormaps/*
'';
meta = {
description = "Little spectrogram/audiogram/sonogram/whatever for JACK";
homepage = "http://sed.free.fr/spectrojack";
license = lib.licenses.publicDomain;
maintainers = with lib.maintainers; [ sleexyz ];
platforms = with lib.platforms; linux;
mainProgram = "spectrojack";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitHub,
libbsd,
pkg-config,
libXrandr,
libXcursor,
libXft,
libXt,
xcbutil,
xcbutilkeysyms,
xcbutilwm,
writeShellScript,
curl,
jq,
nix-update,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spectrwm";
version = "3.7.0";
src = fetchFromGitHub {
owner = "conformal";
repo = "spectrwm";
tag = "SPECTRWM_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}";
hash = "sha256-wuBF+gCoqg5xIcb42rygS+lglghWqoNe0uAzyhe76eI=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libXrandr
libXcursor
libXft
libXt
xcbutil
xcbutilkeysyms
xcbutilwm
libbsd
];
sourceRoot = finalAttrs.src.name + (if stdenv.hostPlatform.isDarwin then "/osx" else "/linux");
makeFlags = [ "PREFIX=${placeholder "out"}" ];
passthru.updateScript = writeShellScript "update-spectrwm" ''
latestVersion=$(${lib.getExe curl} ''${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} --silent --fail --location https://api.github.com/repos/conformal/spectrwm/releases/latest | ${lib.getExe jq} --raw-output .tag_name | grep -oP '\d+' | paste -sd.)
${lib.getExe nix-update} spectrwm --version=$latestVersion
'';
meta = {
description = "Tiling window manager";
homepage = "https://github.com/conformal/spectrwm";
maintainers = with lib.maintainers; [
rake5k
];
license = lib.licenses.isc;
platforms = lib.platforms.all;
longDescription = ''
spectrwm is a small dynamic tiling window manager for X11. It
tries to stay out of the way so that valuable screen real estate
can be used for much more important stuff. It has sane defaults
and does not require one to learn a language to do any
configuration. It was written by hackers for hackers and it
strives to be small, compact and fast.
'';
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
vala,
glib,
gtk4,
libadwaita,
wrapGAppsHook4,
appstream-glib,
desktop-file-utils,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spedread";
version = "2.5.1";
src = fetchFromGitHub {
owner = "Darazaki";
repo = "Spedread";
tag = "v${finalAttrs.version}";
hash = "sha256-0VQdiosYd4HBFM1A9jvtQulvgiRwMoClXAVwLhGh6xU=";
};
postPatch = ''
substituteInPlace meson.build \
--replace-fail "meson.add_install_script('build-aux/meson/postinstall.py')" ""
'';
nativeBuildInputs = [
meson
ninja
vala
pkg-config
wrapGAppsHook4
appstream-glib
desktop-file-utils
];
buildInputs = [
glib
gtk4
libadwaita
];
postInstall = ''
gtk4-update-icon-cache -qtf "$out/share/icons/hicolor"
update-desktop-database -q "$out/share/applications"
glib-compile-schemas "$out/share/glib-2.0/schemas"
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Rapid word display tool for improved reading focus and reduced eye movement";
homepage = "https://github.com/Darazaki/Spedread";
changelog = "https://github.com/Darazaki/Spedread/releases/tag/${finalAttrs.version}";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ thtrf ];
platforms = lib.platforms.linux;
mainProgram = "spedread";
};
})

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
lv2,
meson,
ninja,
}:
let
speech-denoiser-src = fetchFromGitHub {
owner = "lucianodato";
repo = "speech-denoiser";
rev = "04cfba929630404f8d4f4ca5bac8d9b09a99152f";
sha256 = "189l6lz8sz5vr6bjyzgcsrvksl1w6crqsg0q65r94b5yjsmjnpr4";
};
rnnoise-nu = stdenv.mkDerivation {
pname = "rnnoise-nu";
version = "0-unstable-2018-10-08";
src = speech-denoiser-src;
sourceRoot = "${speech-denoiser-src.name}/rnnoise";
nativeBuildInputs = [ autoreconfHook ];
configureFlags = [
"--disable-examples"
"--disable-doc"
"--disable-shared"
"--enable-static"
];
installTargets = [ "install-rnnoise-nu" ];
};
in
stdenv.mkDerivation {
pname = "speech-denoiser";
version = "0-unstable-2018-10-08";
src = speech-denoiser-src;
nativeBuildInputs = [
pkg-config
meson
ninja
];
buildInputs = [
lv2
rnnoise-nu
];
mesonFlags = [ "--prefix=${placeholder "out"}/lib/lv2" ];
postPatch = ''
substituteInPlace meson.build \
--replace "cc.find_library('rnnoise-nu',dirs: meson.current_source_dir() + '/rnnoise/.libs/',required : true)" "cc.find_library('rnnoise-nu', required : true)"
'';
meta = with lib; {
broken = (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
description = "Speech denoise lv2 plugin based on RNNoise library";
homepage = "https://github.com/lucianodato/speech-denoiser";
license = licenses.lgpl3;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
ncurses,
alsa-lib,
}:
stdenv.mkDerivation rec {
pname = "speech_tools";
version = "2.5.0";
src = fetchurl {
url = "http://www.festvox.org/packed/festival/${lib.versions.majorMinor version}/speech_tools-${version}-release.tar.gz";
sha256 = "1k2xh13miyv48gh06rgsq2vj25xwj7z6vwq9ilsn8i7ig3nrgzg4";
};
patches = [
# Fix build on Apple Silicon. Remove in the next release.
(fetchpatch {
url = "https://github.com/festvox/speech_tools/commit/06141f69d21bf507a9becb5405265dc362edb0df.patch";
hash = "sha256-tRestCBuRhak+2ccsB6mvDxGm/TIYX4eZ3oppCOEP9s=";
})
];
buildInputs = [
ncurses
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
"CXX=${stdenv.cc.targetPrefix}c++"
];
# Workaround build failure on -fno-common toolchains:
# ld: libestools.a(editline.o):(.bss+0x28): multiple definition of
# `editline_history_file'; libestools.a(siodeditline.o):(.data.rel.local+0x8): first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
preConfigure = ''
sed -e s@/usr/bin/@@g -i $( grep -rl '/usr/bin/' . )
sed -re 's@/bin/(rm|printf|uname)@\1@g' -i $( grep -rl '/bin/' . )
# c99 makes isnan valid for float and double
substituteInPlace include/EST_math.h \
--replace '__isnanf(X)' 'isnan(X)'
'';
installPhase = ''
mkdir -p "$out"/{bin,lib}
for d in bin lib; do
for i in ./$d/*; do
test "$(basename "$i")" = "Makefile" ||
cp -r "$(readlink -f $i)" "$out/$d"
done
done
'';
doCheck = true;
checkTarget = "test";
meta = with lib; {
description = "Text-to-speech engine";
maintainers = with maintainers; [ raskin ];
platforms = platforms.unix;
license = licenses.free;
};
passthru = {
updateInfo = {
downloadPage = "http://www.festvox.org/packed/festival/";
};
};
}

View File

@@ -0,0 +1,21 @@
diff --git a/src/modules/espeak.c b/src/modules/espeak.c
index 94a01197..9bb34475 100644
--- a/src/modules/espeak.c
+++ b/src/modules/espeak.c
@@ -898,13 +898,13 @@ static SPDVoice **espeak_list_synthesis_voices()
path = g_strdup_printf("%s/mbrola/%s", espeak_data, voicename);
if (access(path, O_RDONLY) != 0) {
g_free(path);
- path = g_strdup_printf("/usr/share/mbrola/%s", voicename);
+ path = g_strdup_printf("@mbrola@/share/mbrola/%s", voicename);
if (access(path, O_RDONLY) != 0) {
g_free(path);
- path = g_strdup_printf("/usr/share/mbrola/%s/%s", voicename, voicename);
+ path = g_strdup_printf("@mbrola@/share/mbrola/%s/%s", voicename, voicename);
if (access(path, O_RDONLY) != 0) {
g_free(path);
- path = g_strdup_printf("/usr/share/mbrola/voices/%s", voicename);
+ path = g_strdup_printf("@mbrola@/share/mbrola/voices/%s", voicename);
if (access(path, O_RDONLY) != 0) {
g_free(path);
espeak_mbrola[j] = NULL;

View File

@@ -0,0 +1,23 @@
diff --git a/speech-dispatcher.service.in b/speech-dispatcher.service.in
index 6280f2d9..edf6024c 100644
--- a/speech-dispatcher.service.in
+++ b/speech-dispatcher.service.in
@@ -20,4 +20,4 @@ Requires=speech-dispatcher.socket
[Service]
Type=simple
ExecStart=@bindir@/speech-dispatcher -s -t 0
-ExecReload=/bin/kill -HUP $MAINPID
+ExecReload=@utillinux@/bin/kill -HUP $MAINPID
diff --git a/speech-dispatcherd.service.in b/speech-dispatcherd.service.in
index ab14b99d..12521b1b 100644
--- a/speech-dispatcherd.service.in
+++ b/speech-dispatcherd.service.in
@@ -19,7 +19,7 @@ Description=Speech-Dispatcher, common interface to speech synthesizers
[Service]
Type=forking
ExecStart=@bindir@/speech-dispatcher -d -t 0
-ExecReload=/bin/kill -HUP $MAINPID
+ExecReload=@utillinux@/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,157 @@
{
stdenv,
lib,
replaceVars,
pkg-config,
fetchurl,
python3Packages,
gettext,
itstool,
libtool,
texinfo,
systemdMinimal,
util-linux,
autoreconfHook,
glib,
dotconf,
libsndfile,
withLibao ? true,
libao,
withPulse ? false,
libpulseaudio,
withAlsa ? false,
alsa-lib,
withOss ? false,
withFlite ? true,
flite,
withEspeak ? true,
espeak,
sonic,
pcaudiolib,
mbrola,
withPico ? true,
svox,
libsOnly ? false,
}:
let
inherit (python3Packages) python pyxdg wrapPython;
in
stdenv.mkDerivation (finalAttrs: {
pname = "speech-dispatcher";
version = "0.12.1";
src = fetchurl {
url = "https://github.com/brailcom/speechd/releases/download/${finalAttrs.version}/speech-dispatcher-${finalAttrs.version}.tar.gz";
sha256 = "sha256-sUpSONKH0tzOTdQrvWbKZfoijn5oNwgmf3s0A297pLQ=";
};
patches = [
(replaceVars ./fix-paths.patch {
utillinux = util-linux;
# patch context
bindir = null;
})
]
++ lib.optionals (withEspeak && espeak.mbrolaSupport) [
# Replace FHS paths.
(replaceVars ./fix-mbrola-paths.patch {
inherit mbrola;
})
];
nativeBuildInputs = [
pkg-config
autoreconfHook
gettext
libtool
itstool
texinfo
wrapPython
];
buildInputs = [
glib
dotconf
libsndfile
libao
libpulseaudio
python
]
++ lib.optionals stdenv.hostPlatform.isLinux [
systemdMinimal # libsystemd
]
++ lib.optionals withAlsa [
alsa-lib
]
++ lib.optionals withEspeak [
espeak
sonic
pcaudiolib
]
++ lib.optionals withFlite [
flite
]
++ lib.optionals withPico [
svox
];
pythonPath = [
pyxdg
];
configureFlags = [
# Audio method falls back from left to right.
"--with-default-audio-method=\"libao,pulse,alsa,oss\""
"--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
]
++ lib.optionals withPulse [
"--with-pulse"
]
++ lib.optionals withAlsa [
"--with-alsa"
]
++ lib.optionals withLibao [
"--with-libao"
]
++ lib.optionals withOss [
"--with-oss"
]
++ lib.optionals withEspeak [
"--with-espeak-ng"
]
++ lib.optionals withPico [
"--with-pico"
];
postPatch = lib.optionalString withPico ''
substituteInPlace src/modules/pico.c --replace "/usr/share/pico/lang" "${svox}/share/pico/lang"
'';
postInstall =
if libsOnly then
''
rm -rf $out/{bin,etc,lib/speech-dispatcher,lib/systemd,libexec,share}
''
else
''
wrapPythonPrograms
'';
enableParallelBuilding = true;
meta = with lib; {
description =
"Common interface to speech synthesis" + lib.optionalString libsOnly " - client libraries only";
homepage = "https://devel.freebsoft.org/speechd";
license = licenses.gpl2Plus;
maintainers = with maintainers; [
berce
jtojnar
];
# TODO: remove checks for `withPico` once PR #375450 is merged
platforms = if withAlsa || withPico then platforms.linux else platforms.unix;
mainProgram = "speech-dispatcher";
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
stdenv,
nodejs,
}:
stdenv.mkDerivation {
pname = "speed-cloudflare-cli";
version = "2.0.3-unstable-2024-05-15";
src = fetchFromGitHub {
owner = "KNawm";
repo = "speed-cloudflare-cli";
rev = "dd301195e7def359a39cceeba16b1c0bedac8f5d";
sha256 = "sha256-kxLeQUdJbkmApf5Af3Mgd3WvS3GhXXOIvA4gNB55TGM=";
};
nativeBuildInputs = [ nodejs ];
installPhase = ''
mkdir -p $out/bin
install -Dm755 $src/cli.js $out/bin/speed-cloudflare-cli
install -Dm644 $src/chalk.js $out/bin/chalk.js
install -Dm644 $src/stats.js $out/bin/stats.js
patchShebangs $out/bin/speed-cloudflare-cli
'';
meta = {
description = "Measure the speed and consistency of your internet connection using speed.cloudflare.com";
homepage = "https://github.com/KNawm/speed-cloudflare-cli";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ TheColorman ];
mainProgram = "speed-cloudflare-cli";
inherit (nodejs.meta) platforms;
};
}

View File

@@ -0,0 +1,51 @@
{
stdenv,
lib,
fetchFromBitbucket,
cmake,
libsForQt5,
}:
stdenv.mkDerivation {
pname = "speedcrunch";
version = "0.12-unstable-2024-12-02";
src = fetchFromBitbucket {
owner = "heldercorreia";
repo = "speedcrunch";
rev = "db51fc5e547aa83834761d874d3518c06d0fec9e";
hash = "sha256-rnl4z/HU3lAF9Y1JvdM8LZWIV1NGfR4q5gOMxlNU2EA=";
};
sourceRoot = "source/src";
buildInputs = with libsForQt5; [
qtbase
qttools
];
nativeBuildInputs = [
cmake
]
++ [
libsForQt5.wrapQtAppsHook
];
meta = with lib; {
homepage = "https://speedcrunch.org";
license = licenses.gpl2Plus;
description = "Fast power user calculator";
mainProgram = "speedcrunch";
longDescription = ''
SpeedCrunch is a fast, high precision and powerful desktop calculator.
Among its distinctive features are a scrollable display, up to 50 decimal
precisions, unlimited variable storage, intelligent automatic completion
full keyboard-friendly and more than 15 built-in math function.
'';
maintainers = with maintainers; [
j0hax
];
inherit (libsForQt5.qtbase.meta) platforms;
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
dpkg,
fetchurl,
procps,
net-tools,
autoPatchelfHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "speedify";
version = "15.8.2-12611";
src = fetchurl {
url = "https://apt.connectify.me/pool/main/s/speedify/speedify_${finalAttrs.version}_amd64.deb";
hash = "sha256-61GQZkXBe3EQpOUODpL60SCHJO0FGqvpL9xFn+q+kPs=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [
procps
net-tools
];
installPhase = ''
runHook preInstall
substituteInPlace "usr/share/speedify/SpeedifyStartup.sh" "usr/share/speedify/SpeedifyShutdown.sh" "usr/share/speedify/GenerateLogs.sh" \
--replace-fail '/usr/share/' "$out/share/"
substituteInPlace "usr/share/speedify/SpeedifyStartup.sh" \
--replace-fail 'logs' "/var/log/speedify"
mkdir -p $out/share/
mv usr/share $out/
mkdir -p $out/etc/
mv lib/systemd $out/etc/
mkdir -p $out/bin
ln -s $out/share/speedify/speedify_cli $out/bin/speedify_cli
runHook postInstall
'';
meta = {
homepage = "https://speedify.com/";
description = "Use multiple internet connections in parallel";
longDescription = ''
Combine multiple internet connections (Wi-Fi, 4G, 5G, Ethernet, Starlink, Satellite, and more)
to improve the stability, speed, and security of your online experiences.
Check corresponding option {option}`services.speedify.enable`
'';
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ zahrun ];
};
})

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
}:
stdenv.mkDerivation rec {
pname = "speedread";
version = "unstable-2016-09-21";
src = fetchFromGitHub {
owner = "pasky";
repo = "speedread";
rev = "93acfd61a1bf4482537ce5d71b9164b8446cb6bd";
sha256 = "1h94jx3v18fdlc64lfmj2g5x63fjyqb8c56k5lihl7bva0xgdkxd";
};
buildInputs = [ perl ];
installPhase = ''
install -m755 -D speedread $out/bin/speedread
'';
meta = with lib; {
description = "Simple terminal-based open source Spritz-alike";
longDescription = ''
Speedread is a command line filter that shows input text as a
per-word rapid serial visual presentation aligned on optimal
reading points. This allows reading text at a much more rapid
pace than usual as the eye can stay fixed on a single place.
'';
homepage = src.meta.homepage;
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.oxij ];
mainProgram = "speedread";
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/scripts/prepack.sh b/scripts/prepack.sh
index 2172706..1f8f152 100755
--- a/scripts/prepack.sh
+++ b/scripts/prepack.sh
@@ -41,7 +41,7 @@ mkdir -p "$OUTDIR"
# Place info about the current commit into the build dir to easily identify releases
npm ls -depth -1 | head -n 1 | cut -d' ' -f 1 > "$OUTDIR"/release.txt
date >> "$OUTDIR"/release.txt
-git rev-parse HEAD >> "$OUTDIR"/release.txt
+cp COMMIT "$OUTDIR"/release.txt
# Place a json schema for the file format into the build directory too
node scripts/generate-file-format-schema-json.js > "$OUTDIR"/file-format-schema.json

View File

@@ -0,0 +1,58 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
versionCheckHook,
}:
buildNpmPackage rec {
pname = "speedscope";
version = "1.23.1";
src = fetchFromGitHub {
owner = "jlfwong";
repo = "speedscope";
tag = "v${version}";
hash = "sha256-PIyx4ceihTSLRDP5MW3n6edtYNFOnx8Uo7qUWW7LTs8=";
# scripts/prepack.sh wants to extract the git commit from .git
# We don't want to keep .git for reproducibility reasons, so save the commit
# to a file and patch the script.
leaveDotGit = true;
postFetch = ''
( cd $out; git rev-parse HEAD > COMMIT )
rm -rf $out/.git
'';
};
npmDepsHash = "sha256-xpFrkKAaFbVE1zJ/haibQte4HjUWmeBR8BVjZuSoyjI=";
patches = [
./fix-shebang.patch
];
postConfigure = ''
patchShebangs scripts
'';
dontNpmBuild = true;
postFixup = ''
# Remove some dangling symlinks
rm $out/lib/node_modules/speedscope/node_modules/.bin/sshpk*
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
meta = {
description = "Fast and interactive web-based viewer for performance profiles";
homepage = "https://github.com/jlfwong/speedscope";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
mainProgram = "speedscope";
maintainers = with lib.maintainers; [ thomasjm ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "speedtest-go";
version = "1.7.10";
src = fetchFromGitHub {
owner = "showwin";
repo = "speedtest-go";
tag = "v${version}";
hash = "sha256-w0gIyeoQP+MfA9Q2CD7+laABmSrJ9u836E+UIhJeWdk=";
};
vendorHash = "sha256-2z241HQOckNFvQWkxfjVVmmdFW4XevQBLj8huxYAheg=";
excludedPackages = [ "example" ];
# test suite requires network
doCheck = false;
meta = {
description = "CLI and Go API to Test Internet Speed using speedtest.net";
homepage = "https://github.com/showwin/speedtest-go";
changelog = "https://github.com/showwin/speedtest-go/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
aleksana
luftmensch-luftmensch
];
mainProgram = "speedtest-go";
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
rustPlatform,
fetchFromGitHub,
openssl,
pkg-config,
stdenv,
nix-update-script,
testers,
speedtest-rs,
}:
rustPlatform.buildRustPackage rec {
pname = "speedtest-rs";
version = "0.2.0";
src = fetchFromGitHub {
owner = "nelsonjchen";
repo = "speedtest-rs";
tag = "v${version}";
hash = "sha256-1FAFYiWDD/KG/7/UTv/EW6Nj2GnU0GZFFq6ouMc0URA=";
};
buildInputs = [ openssl ];
nativeBuildInputs = [ pkg-config ];
cargoHash = "sha256-T8OG6jmUILeRmvPLjGDFlJyBm87Xdgy4bw4n7V0BQMk=";
# Fail for unclear reasons (only on darwin)
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
"--skip=speedtest::tests::test_get_configuration"
"--skip=speedtest::tests::test_get_server_list_with_config"
];
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion { package = speedtest-rs; };
};
meta = {
description = "Command line internet speedtest tool written in rust";
homepage = "https://github.com/nelsonjchen/speedtest-rs";
changelog = "https://github.com/nelsonjchen/speedtest-rs/blob/v${version}/CHANGELOG.md";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [ GaetanLepage ];
mainProgram = "speedtest-rs";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
appstream-glib,
blueprint-compiler,
desktop-file-utils,
fetchFromGitHub,
glib,
gobject-introspection,
gtk4,
libadwaita,
meson,
ninja,
pkg-config,
python3Packages,
wrapGAppsHook4,
}:
python3Packages.buildPythonApplication rec {
pname = "speedtest";
version = "1.4.0";
pyproject = false;
src = fetchFromGitHub {
owner = "Ketok4321";
repo = "speedtest";
tag = "v${version}";
hash = "sha256-00qHHCGXAzV38BLUIENwxmWUhp+t7BsM7w6xu1Xs/UA=";
};
postPatch = ''
substituteInPlace meson.build \
--replace-fail "run_command('git', 'describe', '--tags', check: false).stdout().strip()" "'v${version}'"
'';
strictDeps = true;
nativeBuildInputs = [
appstream-glib
blueprint-compiler
desktop-file-utils # For `desktop-file-validate`
glib # For `glib-compile-schemas`
gobject-introspection
gtk4 # For `gtk-update-icon-cache`
meson
ninja
pkg-config
wrapGAppsHook4
];
dependencies = [
python3Packages.aiohttp
python3Packages.pygobject3
];
buildInputs = [ libadwaita ];
dontWrapGAppsHook = true;
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
meta = {
description = "Graphical librespeed client written using GTK4 + libadwaita";
homepage = "https://github.com/Ketok4321/speedtest";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ getchoo ];
mainProgram = "speedtest";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,12 @@
diff --git a/configure.ac b/configure.ac
index 5a80c6b..07c37bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,6 +3,7 @@ AC_CONFIG_SRCDIR([src/spek.cc])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([1.11.1 foreign no-dist-gzip dist-xz serial-tests])
AM_SILENT_RULES([yes])
+AC_CONFIG_MACRO_DIRS([m4])
AC_LANG([C++])
AM_PROG_AR

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
intltool,
pkg-config,
ffmpeg,
wxGTK32,
gtk3,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spek";
version = "0.8.5";
src = fetchFromGitHub {
owner = "alexkay";
repo = "spek";
tag = "v${finalAttrs.version}";
hash = "sha256-VYt2so2k3Rk3sLSV1Tf1G2pESYiXygrKr9Koop8ChCg=";
};
patches = [
./autoconf.patch
];
nativeBuildInputs = [
autoreconfHook
intltool
pkg-config
wrapGAppsHook3
];
buildInputs = [
ffmpeg
wxGTK32
gtk3
];
meta = {
description = "Analyse your audio files by showing their spectrogram";
homepage = "http://spek.cc/";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ bjornfor ];
platforms = lib.platforms.all;
mainProgram = "spek";
};
})

View File

@@ -0,0 +1,83 @@
{
stdenv,
lib,
fetchFromGitHub,
fftw,
cmake,
mpi,
gfortran,
llvmPackages,
cudaPackages,
rocmPackages,
config,
gpuBackend ? (
if config.cudaSupport then
"cuda"
else if config.rocmSupport then
"rocm"
else
"none"
),
}:
assert builtins.elem gpuBackend [
"none"
"cuda"
"rocm"
];
stdenv.mkDerivation rec {
pname = "SpFFT";
version = "1.1.1";
src = fetchFromGitHub {
owner = "eth-cscs";
repo = "SpFFT";
rev = "v${version}";
hash = "sha256-Qc/omdRv7dW9NJUOczMZJKhc+Z/sXeIxv3SbpegAGdU=";
};
nativeBuildInputs = [
cmake
gfortran
]
++ lib.optional (gpuBackend == "cuda") cudaPackages.cuda_nvcc;
buildInputs = [
fftw
mpi
]
++ lib.optionals (gpuBackend == "cuda") [
cudaPackages.libcufft
cudaPackages.cuda_cudart
]
++ lib.optionals (gpuBackend == "rocm") [
rocmPackages.clr
rocmPackages.rocfft
rocmPackages.hipfft
]
++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp;
cmakeFlags = [
"-DSPFFT_OMP=ON"
"-DSPFFT_MPI=ON"
"-DSPFFT_SINGLE_PRECISION=OFF"
"-DSPFFT_FORTRAN=ON"
# Required due to broken CMake files
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DCMAKE_INSTALL_INCLUDEDIR=include"
]
++ lib.optional (gpuBackend == "cuda") "-DSPFFT_GPU_BACKEND=CUDA"
++ lib.optionals (gpuBackend == "rocm") [
"-DSPFFT_GPU_BACKEND=ROCM"
"-DHIP_ROOT_DIR=${rocmPackages.clr}"
];
meta = with lib; {
description = "Sparse 3D FFT library with MPI, OpenMP, CUDA and ROCm support";
homepage = "https://github.com/eth-cscs/SpFFT";
license = licenses.bsd3;
maintainers = [ maintainers.sheepforce ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "sphinx-lint";
version = "1.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "sphinx-contrib";
repo = "sphinx-lint";
tag = "v${version}";
hash = "sha256-VM8PyUZVQQFdXLR14eN7+hPT/iGOVHG6s1bcac4MPo4=";
};
build-system = [
python3.pkgs.hatch-vcs
python3.pkgs.hatchling
];
dependencies = with python3.pkgs; [
polib
regex
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
pytest-cov
];
meta = {
description = "Check for stylistic and formal issues in .rst and .py files included in the documentation";
homepage = "https://github.com/sphinx-contrib/sphinx-lint";
license = lib.licenses.psfl;
maintainers = with lib.maintainers; [ doronbehar ];
mainProgram = "sphinx-lint";
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
expat,
libmysqlclient,
enableXmlpipe2 ? false,
enableMysql ? true,
}:
stdenv.mkDerivation rec {
pname = "sphinxsearch";
version = "2.2.11";
src = fetchurl {
url = "http://sphinxsearch.com/files/sphinx-${version}-release.tar.gz";
sha256 = "1aa1mh32y019j8s3sjzn4vwi0xn83dwgl685jnbgh51k16gh6qk6";
};
enableParallelBuilding = true;
configureFlags = [
"--program-prefix=sphinxsearch-"
"--enable-id64"
]
++ lib.optionals (!enableMysql) [
"--without-mysql"
];
nativeBuildInputs = [
pkg-config
];
buildInputs =
lib.optionals enableMysql [
libmysqlclient
]
++ lib.optionals enableXmlpipe2 [
expat
];
CXXFLAGS = "-std=c++98";
meta = {
description = "Open source full text search server";
homepage = "http://sphinxsearch.com";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
ederoyd46
valodim
];
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
python3,
fetchFromGitLab,
}:
python3.pkgs.buildPythonApplication rec {
pname = "sphinxygen";
version = "1.0.10";
pyproject = true;
src = fetchFromGitLab {
owner = "drobilla";
repo = "sphinxygen";
tag = "v${version}";
hash = "sha256-Xii5pDa1eHrHUKERC2gDif/NIkpab/IZYBRvMq9YKtE=";
};
build-system = with python3.pkgs; [ setuptools ];
pythonImportsCheck = [ "sphinxygen" ];
meta = {
description = "Generates Sphinx markup from an XML description extracted by Doxygen";
homepage = "https://gitlab.com/drobilla/sphinxygen";
changelog = "https://gitlab.com/drobilla/sphinxygen/-/releases/v${version}";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [ samueltardieu ];
mainProgram = "sphinxygen";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
autoreconfHook,
libX11,
libXrandr,
}:
stdenv.mkDerivation {
pname = "spice-autorandr";
version = "0.0.2";
src = fetchFromGitHub {
owner = "seife";
repo = "spice-autorandr";
rev = "0f61dc921b638761ee106b5891384c6348820b26";
hash = "sha256-eBvzalWT3xI8+uNns0/ZyRes91ePpj0beKb8UBVqo0E=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libX11
libXrandr
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp $pname $out/bin/
runHook postInstall
'';
meta = {
description = "Automatically adjust the client window resolution in Linux KVM guests using the SPICE driver";
mainProgram = "spice-autorandr";
longDescription = ''
Some desktop environments update the display resolution automatically,
this package is only useful when running without a DE or with a DE that
does not update display resolution automatically.
This package relies on `spice-vdagent` running an updating the xrandr modes. Enable
`spice-vdagent` by adding `services.spice-autorandr.enable = true` to your `configuration.nix`.
'';
homepage = "https://github.com/seife/spice-autorandr";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
dmytrokyrychuk
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,187 @@
{
lib,
stdenv,
fetchurl,
acl,
cyrus_sasl,
docbook_xsl,
libepoxy,
gettext,
gobject-introspection,
gst_all_1,
gtk-doc,
gtk3,
hwdata,
json-glib,
libcacard,
libcap_ng,
libdrm,
libjpeg_turbo,
libopus,
libsoup_3,
libusb1,
lz4,
meson,
mesonEmulatorHook,
ninja,
openssl,
perl,
phodav,
pixman,
pkg-config,
polkit,
python3,
spice-protocol,
usbredir,
vala,
wayland-protocols,
wayland-scanner,
zlib,
wrapGAppsHook3,
withPolkit ? stdenv.hostPlatform.isLinux,
}:
# If this package is built with polkit support (withPolkit=true),
# usb redirection requires spice-client-glib-usb-acl-helper to run setuid root.
# The helper confirms via polkit that the user has an active session,
# then adds a device acl entry for that user.
# Example NixOS config to create a setuid wrapper for the helper:
# security.wrappers.spice-client-glib-usb-acl-helper.source =
# "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
# On non-NixOS installations, make a setuid copy of the helper
# outside the store and adjust PATH to find the setuid version.
# If this package is built without polkit support (withPolkit=false),
# usb redirection requires read-write access to usb devices.
# This can be granted by adding users to a custom group like "usb"
# and using a udev rule to put all usb devices in that group.
# Example NixOS config:
# users.groups.usb = {};
# users.users.dummy.extraGroups = [ "usb" ];
# services.udev.extraRules = ''
# KERNEL=="*", SUBSYSTEMS=="usb", MODE="0664", GROUP="usb"
# '';
stdenv.mkDerivation rec {
pname = "spice-gtk";
version = "0.42";
outputs = [
"out"
"dev"
"devdoc"
"man"
];
src = fetchurl {
url = "https://www.spice-space.org/download/gtk/${pname}-${version}.tar.xz";
sha256 = "sha256-k4ARfxgRrR+qGBLLZgJHm2KQ1KDYzEQtREJ/f2wOelg=";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
docbook_xsl
gettext
gobject-introspection
gtk-doc
meson
ninja
perl
pkg-config
python3
python3.pkgs.pyparsing
python3.pkgs.six
vala
wrapGAppsHook3
]
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
mesonEmulatorHook
]
++ lib.optionals stdenv.hostPlatform.isLinux [
wayland-scanner
];
buildInputs = [
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
cyrus_sasl
libepoxy
gtk3
json-glib
libcacard
libjpeg_turbo
libopus
libsoup_3
libusb1
lz4
openssl
phodav
pixman
spice-protocol
usbredir
vala
zlib
]
++ lib.optionals withPolkit [
polkit
acl
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libcap_ng
libdrm
wayland-protocols
];
PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder "out"}/share/polkit-1/actions";
mesonFlags = [
"-Dusb-acl-helper-dir=${placeholder "out"}/bin"
"-Dusb-ids-path=${hwdata}/share/hwdata/usb.ids"
]
++ lib.optionals (!withPolkit) [
"-Dpolkit=disabled"
]
++ lib.optionals (!stdenv.hostPlatform.isLinux) [
"-Dlibcap-ng=disabled"
"-Degl=disabled"
]
++ lib.optionals stdenv.hostPlatform.isMusl [
"-Dcoroutine=gthread" # Fixes "Function missing:makecontext"
];
postPatch = ''
# get rid of absolute path to helper in store so we can use a setuid wrapper
substituteInPlace src/usb-acl-helper.c \
--replace-fail 'ACL_HELPER_PATH"/' '"'
# don't try to setcap/suid in a nix builder
substituteInPlace src/meson.build \
--replace-fail "meson.add_install_script('../build-aux/setcap-or-suid'," \
"# meson.add_install_script('../build-aux/setcap-or-suid',"
patchShebangs subprojects/keycodemapdb/tools/keymap-gen
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# don't use version script and don't export symbols
substituteInPlace src/meson.build \
--replace-fail "spice_gtk_version_script = [" "# spice_gtk_version_script = [" \
--replace-fail ",--version-script=@0@'.format(spice_client_glib_syms_path)" "'"
'';
meta = with lib; {
description = "GTK 3 SPICE widget";
longDescription = ''
spice-gtk is a GTK 3 SPICE widget. It features glib-based
objects for SPICE protocol parsing and a gtk widget for embedding
the SPICE display into other applications such as virt-manager.
Python bindings are available too.
'';
homepage = "https://www.spice-space.org/";
license = licenses.lgpl21;
maintainers = [ maintainers.xeji ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchurl,
meson,
ninja,
}:
stdenv.mkDerivation rec {
pname = "spice-protocol";
version = "0.14.5";
src = fetchurl {
url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.xz";
sha256 = "sha256-uvWESfbonRn0dYma1fuRlv3EbAPMUyM/TjnPKXj5z/c=";
};
nativeBuildInputs = [
meson
ninja
];
postInstall = ''
mkdir -p $out/lib
ln -sv ../share/pkgconfig $out/lib/pkgconfig
'';
meta = with lib; {
description = "Protocol headers for the SPICE protocol";
homepage = "https://www.spice-space.org/";
license = licenses.bsd3;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
meson,
ninja,
pkg-config,
python3,
vala,
wrapGAppsHook3,
glib,
gtk3,
json-glib,
libevdev,
libgee,
libgudev,
libsoup_2_4,
pantheon,
}:
stdenv.mkDerivation rec {
pname = "spice-up";
version = "1.9.1";
src = fetchFromGitHub {
owner = "Philip-Scott";
repo = "Spice-up";
rev = version;
sha256 = "sha256-FI6YMbqZfaU19k8pS2eoNCnX8O8F99SHHOxMwHC5fTc=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
python3
vala
wrapGAppsHook3
];
buildInputs = [
glib
gtk3
json-glib
libevdev
libgee
libgudev
libsoup_2_4
pantheon.granite
];
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Create simple and beautiful presentations";
homepage = "https://github.com/Philip-Scott/Spice-up";
maintainers = with maintainers; [
samdroid-apps
xiorcale
];
teams = [ teams.pantheon ];
platforms = platforms.linux;
# The COPYING file has GPLv3; some files have GPLv2+ and some have GPLv3+
license = licenses.gpl3Plus;
mainProgram = "com.github.philip_scott.spice-up";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
alsa-lib,
spice-protocol,
glib,
libpciaccess,
libxcb,
libXrandr,
libXinerama,
libXfixes,
dbus,
libdrm,
systemd,
}:
stdenv.mkDerivation rec {
pname = "spice-vdagent";
version = "0.23.0";
src = fetchurl {
url = "https://www.spice-space.org/download/releases/${pname}-${version}.tar.bz2";
hash = "sha256-Y+D5vVWXxGOKz9bxDXojVPWZvZ31sx5EMnDKzwfhakA=";
};
postPatch = ''
substituteInPlace data/spice-vdagent.desktop --replace /usr $out
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
alsa-lib
spice-protocol
glib
libdrm
libpciaccess
libxcb
libXrandr
libXinerama
libXfixes
dbus
systemd
];
meta = {
description = "Enhanced SPICE integration for linux QEMU guest";
longDescription = ''
Spice agent for linux guests offering
* Client mouse mode
* Copy and paste
* Automatic adjustment of the X-session resolution
to the client resolution
* Multiple displays
'';
homepage = "https://www.spice-space.org/";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.aboseley ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,110 @@
{
lib,
stdenv,
fetchurl,
meson,
ninja,
pkg-config,
pixman,
alsa-lib,
openssl,
libXrandr,
libXfixes,
libXext,
libXrender,
libXinerama,
libjpeg,
zlib,
spice-protocol,
python3,
glib,
cyrus_sasl,
libcacard,
lz4,
libopus,
gst_all_1,
orc,
gdk-pixbuf,
}:
stdenv.mkDerivation rec {
pname = "spice";
version = "0.16.0";
src = fetchurl {
url = "https://www.spice-space.org/download/releases/spice-server/${pname}-${version}.tar.bz2";
sha256 = "sha256-Cm7JUo8FNxJhu7LUb/Nee1xF/4m7l1qZr5Wl8g/0cX0=";
};
patches = [
./remove-rt-on-darwin.patch
];
nativeBuildInputs = [
glib
meson
ninja
pkg-config
python3
python3.pkgs.pyparsing
];
buildInputs = [
cyrus_sasl
glib
gst_all_1.gst-plugins-base
libXext
libXfixes
libXinerama
libXrandr
libXrender
libcacard
libjpeg
libopus
lz4
openssl
orc
pixman
python3.pkgs.pyparsing
spice-protocol
zlib
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
gdk-pixbuf
];
env.NIX_CFLAGS_COMPILE = "-fno-stack-protector";
mesonFlags = [
"-Dgstreamer=1.0"
];
postPatch = ''
patchShebangs build-aux
'';
postInstall = ''
ln -s spice-server $out/include/spice
'';
meta = with lib; {
description = "Complete open source solution for interaction with virtualized desktop devices";
longDescription = ''
The Spice project aims to provide a complete open source solution for interaction
with virtualized desktop devices.The Spice project deals with both the virtualized
devices and the front-end. Interaction between front-end and back-end is done using
VD-Interfaces. The VD-Interfaces (VDI) enable both ends of the solution to be easily
utilized by a third-party component.
'';
homepage = "https://www.spice-space.org/";
license = licenses.lgpl21;
maintainers = with maintainers; [
atemu
];
platforms = with platforms; linux ++ darwin;
};
}

View File

@@ -0,0 +1,18 @@
--- a/meson.build
+++ b/meson.build
@@ -103,11 +103,11 @@
spice_server_deps += dependency(dep)
endforeach
-if host_machine.system() != 'windows'
+if (host_machine.system() != 'windows' and host_machine.system() != 'darwin')
foreach dep : ['rt', 'm']
spice_server_deps += compiler.find_library(dep)
endforeach
-else
+elif host_machine.system() == 'windows'
foreach dep : ['ws2_32', 'shlwapi']
spice_server_deps += compiler.find_library(dep)
endforeach
Diff finished. Sun Oct 16 06:09:35 2022

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "zed";
version = "0.30.2";
src = fetchFromGitHub {
owner = "authzed";
repo = "zed";
tag = "v${version}";
hash = "sha256-ftSgp0zxUmSTJ7lFHxFdebKrCKbsRocDkfabVpyQ5Kg=";
};
vendorHash = "sha256-2AkknaufRhv79c9WQtcW5oSwMptkR+FB+1/OJazyGSM=";
ldflags = [ "-X 'github.com/jzelinskie/cobrautil/v2.Version=${src.tag}'" ];
preCheck = ''
export NO_COLOR=true
'';
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd zed \
--bash <($out/bin/zed completion bash) \
--fish <($out/bin/zed completion fish) \
--zsh <($out/bin/zed completion zsh)
'';
meta = with lib; {
changelog = "https://github.com/authzed/zed/releases/tag/${src.tag}";
description = "Command line for managing SpiceDB";
mainProgram = "zed";
longDescription = ''
SpiceDB is an open-source permissions database inspired by
Google Zanzibar. zed is the command line client for SpiceDB.
'';
homepage = "https://authzed.com/";
license = licenses.asl20;
maintainers = with maintainers; [
squat
thoughtpolice
];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "spicedb";
version = "1.46.0";
src = fetchFromGitHub {
owner = "authzed";
repo = "spicedb";
tag = "v${version}";
hash = "sha256-laLUhJkD4XbwKo4wjngBN1PkDpt2fHgMmVv2JTzZl6Q=";
};
vendorHash = "sha256-XqXbQYUAQiOZ0MjWwFSRe0suaQzXb6KQb+KoGAvvceM=";
ldflags = [
"-X 'github.com/jzelinskie/cobrautil/v2.Version=${src.tag}'"
];
subPackages = [ "cmd/spicedb" ];
nativeBuildInputs = [ installShellFiles ];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd spicedb \
--bash <($out/bin/spicedb completion bash) \
--fish <($out/bin/spicedb completion fish) \
--zsh <($out/bin/spicedb completion zsh)
'';
meta = with lib; {
changelog = "https://github.com/authzed/spicedb/releases/tag/${src.tag}";
description = "Open source permission database";
longDescription = ''
SpiceDB is an open-source permissions database inspired by
Google Zanzibar.
'';
homepage = "https://authzed.com/";
license = licenses.asl20;
maintainers = with maintainers; [
squat
thoughtpolice
];
mainProgram = "spicedb";
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
spicetify-cli,
}:
buildGoModule (finalAttrs: {
pname = "spicetify-cli";
version = "2.42.0";
src = fetchFromGitHub {
owner = "spicetify";
repo = "cli";
tag = "v${finalAttrs.version}";
hash = "sha256-beMxE5ZpFqilgk4Xa0mvJyexDAFdwKUa1rJipFXBM7I=";
};
vendorHash = "sha256-UwZ5wtZ5akmn3GF93XAqJqr9mUfbFQTD/LU8YUeoaGA=";
postPatch = ''
substituteInPlace src/preprocess/preprocess.go \
--replace-fail 'version != "Dev"' 'version != "${finalAttrs.version}"'
'';
ldflags = [
"-s -w"
"-X 'main.version=${finalAttrs.version}'"
];
postInstall =
/*
jsHelper and css-map.json are required at runtime
and are looked for in the directory of the spicetify binary
so here we move spicetify to /share/spicetify
so that css-map.json and jsHelper don't pollute PATH
*/
''
mkdir -p $out/share/spicetify
cp -r $src/jsHelper $out/share/spicetify/jsHelper
cp $src/css-map.json $out/share/spicetify/css-map.json
mv $out/bin/cli $out/share/spicetify/spicetify
ln -s $out/share/spicetify/spicetify $out/bin/spicetify
'';
passthru.tests.version = testers.testVersion { package = spicetify-cli; };
meta = {
description = "Command-line tool to customize Spotify client";
homepage = "https://github.com/spicetify/cli";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
mdarocha
gerg-l
];
mainProgram = "spicetify";
};
})

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
makeWrapper,
python3,
bison,
flex,
zlib,
}:
stdenv.mkDerivation rec {
pname = "spicy";
version = "1.14.0";
strictDeps = true;
src = fetchFromGitHub {
owner = "zeek";
repo = "spicy";
tag = "v${version}";
hash = "sha256-Pc4BqQiaifB/kAbcaHYyTUeUE/HLlvg0qDSPdC/gMko=";
fetchSubmodules = true;
};
nativeBuildInputs = [
bison
cmake
flex
makeWrapper
python3
];
buildInputs = [
flex
zlib
];
postPatch = ''
patchShebangs scripts tests/scripts
'';
cmakeFlags = [
"-DHILTI_DEV_PRECOMPILE_HEADERS=OFF"
];
preFixup = ''
for b in $out/bin/*
do wrapProgram "$b" --prefix PATH : "${
lib.makeBinPath [
bison
flex
]
}"
done
'';
meta = with lib; {
homepage = "https://github.com/zeek/spicy";
description = "C++ parser generator for dissecting protocols & files";
longDescription = ''
Spicy is a parser generator that makes it easy to create robust C++
parsers for network protocols, file formats, and more. Spicy is a bit
like a "yacc for protocols", but it's much more than that: It's an
all-in-one system enabling developers to write attributed grammars that
describe both syntax and semantics of an input format using a single,
unified language. Think of Spicy as a domain-specific scripting language
for all your parsing needs.
'';
license = licenses.bsd3;
maintainers = with maintainers; [ tobim ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "spicy";
version = "0.6.2";
src = fetchFromGitHub {
owner = "trhodeos";
repo = "spicy";
rev = "v${version}";
sha256 = "sha256-TodMm4UbnLB+LiyfPVXT7bcVLbyBFbGoOYQSsz3IMfM=";
};
vendorHash = "sha256-uy33vfsvyLCep1aN8qO0BMmpPylhzTLhosjjD5ghmHE=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Nintendo 64 segment assembler";
longDescription = ''
An open-source version of the Nintendo64 sdk's mild.exe. Assembles
segments into an n64-compatible rom.
'';
homepage = "https://github.com/trhodeos/spicy";
license = licenses.mit;
maintainers = with maintainers; [ _414owen ];
};
}

View File

@@ -0,0 +1,85 @@
{
fetchFromGitHub,
lib,
nix-update-script,
openssl,
pkg-config,
rust-jemalloc-sys,
rustPlatform,
sqlite,
stdenv,
versionCheckHook,
zstd,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "spider";
version = "2.37.159";
src = fetchFromGitHub {
owner = "spider-rs";
repo = "spider";
tag = "v${finalAttrs.version}";
hash = "sha256-5e6PK+PQnIEm7qpJGW8kmO6GugQMU3phWIsqFSGIj48=";
};
cargoHash = "sha256-ffT8SQh6CjIqxMSGahGSiUha1e8wwUbbC3eTEUMx14s=";
nativeBuildInputs = [
pkg-config
rustPlatform.bindgenHook
];
buildInputs = [
openssl
rust-jemalloc-sys
sqlite
zstd
];
env = {
OPENSSL_NO_VENDOR = true;
ZSTD_SYS_USE_PKG_CONFIG = true;
};
checkFlags = [
# Sandbox limitation: no network or io_uring
"--skip=website::crawl"
"--skip=website::scrape"
"--skip=website::test_crawl_subdomains"
"--skip=website::test_crawl_tld"
"--skip=website::test_respect_robots_txt"
"--skip=page::parse_links"
"--skip=page::test_status_code"
"--skip=pdl_is_fresh"
"--skip=verify_revision_available"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Sandbox limitation: attempted to create a NULL object
"--skip=website::test_link_duplicates"
"--skip=website::not_crawl_blacklist"
"--skip=website::test_crawl_budget"
"--skip=website::test_crawl_subscription"
"--skip=website::Website::subscribe_guard"
"--skip=website::Website::subscribe"
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/spider-rs/spider/releases/tag/v${finalAttrs.version}";
description = "Web crawler and scraper, building blocks for data curation workloads";
homepage = "https://github.com/spider-rs/spider";
license = lib.licenses.mit;
mainProgram = "spider";
maintainers = with lib.maintainers; [
j-mendez
KSJ2000
];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
patchelf,
fontconfig,
freetype,
glib,
libICE,
libSM,
libX11,
libXext,
libXrender,
zlib,
}:
let
sha256 = "6d6ca2b383bcc81af1217c696eb77864a2b6db7428f4b5bde5b5913ce705eec5";
ldpath = lib.makeLibraryPath [
fontconfig
freetype
glib
libICE
libSM
libX11
libXext
libXrender
zlib
];
version = "7.5.0";
in
stdenv.mkDerivation {
pname = "spideroak";
inherit version;
src = fetchurl {
name = "SpiderOakONE-${version}-slack_tar_x64.tgz";
url = "https://spideroak-releases.s3.us-east-2.amazonaws.com/SpiderOakONE-${version}-slack_tar_x64.tgz";
inherit sha256;
};
sourceRoot = ".";
unpackCmd = "tar -xzf $curSrc";
installPhase = ''
mkdir "$out"
cp -r "./"* "$out"
mkdir "$out/bin"
rm "$out/usr/bin/SpiderOakONE"
rmdir $out/usr/bin || true
mv $out/usr/share $out/
rm -f $out/opt/SpiderOakONE/lib/libz*
patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 \
"$out/opt/SpiderOakONE/lib/SpiderOakONE"
RPATH=$out/opt/SpiderOakONE/lib:${ldpath}
makeWrapper $out/opt/SpiderOakONE/lib/SpiderOakONE $out/bin/spideroak --set LD_LIBRARY_PATH $RPATH \
--set QT_PLUGIN_PATH $out/opt/SpiderOakONE/lib/plugins/ \
--set SpiderOak_EXEC_SCRIPT $out/bin/spideroak
sed -i 's/^Exec=.*/Exec=spideroak/' $out/share/applications/SpiderOakONE.desktop
'';
nativeBuildInputs = [
patchelf
makeWrapper
];
meta = {
homepage = "https://spideroak.com";
description = "Secure online backup and sychronization";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
platforms = lib.platforms.linux;
mainProgram = "spideroak";
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "spiffe-helper";
version = "0.10.1";
src = fetchFromGitHub {
owner = "spiffe";
repo = "spiffe-helper";
tag = "v${finalAttrs.version}";
hash = "sha256-rP0qXSut+9m8wCzByO0CO6IobC1lphK/3Y1OhPgiAOw=";
};
vendorHash = "sha256-sAcmJNry3nuWyzt0Ee05JjROR/pDXxu2NVmltotSD0U=";
ldflags = [
"-s"
"-w"
];
preCheck = ''
patchShebangs pkg/sidecar/sidecar_test.sh
'';
doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
installCheckPhase = ''
runHook preInstallCheck
# no version output
$out/bin/${finalAttrs.meta.mainProgram} -h
runHook postInstallCheck
'';
meta = {
description = "Retrieve and manage SVIDs on behalf of a workload";
homepage = "https://github.com/spiffe/spiffe-helper";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jk ];
mainProgram = "spiffe-helper";
};
})

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "spiffe-vault";
version = "0.6.2";
src = fetchFromGitHub {
owner = "philips-labs";
repo = "spiffe-vault";
tag = "v${finalAttrs.version}";
hash = "sha256-KwfsusCrh+IlgipFFALnJWfw8LJucThT4p3j+XKk84s=";
# 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-lNKcnYh2BaDzimIZuzUWA6Qwn+/Jqi1UpLKupQUpVMQ=";
ldflags = [
"-s"
"-w"
"-X github.com/philips-labs/spiffe-vault/cmd/spiffe-vault/cli.GitVersion=v${finalAttrs.version}"
"-X github.com/philips-labs/spiffe-vault/cmd/spiffe-vault/cli.gitTreeState=clean"
];
preBuild = ''
ldflags+=" -X github.com/philips-labs/spiffe-vault/cmd/spiffe-vault/cli.gitCommit=$(cat COMMIT)"
ldflags+=" -X \"github.com/philips-labs/spiffe-vault/cmd/spiffe-vault/cli.buildDate=$(cat SOURCE_DATE_EPOCH)\""
'';
preCheck = ''
# tests expect version ldflags not to be set
unset ldflags
'';
doInstallCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
versionCheckProgramArg = "version";
meta = {
description = "Integrates Spiffe and Vault to have secretless authentication";
homepage = "https://github.com/philips-labs/spiffe-vault";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jk ];
mainProgram = "spiffe-vault";
};
})

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
callPackage,
cmake,
gmp,
halibut,
ncurses,
perl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spigot";
version = "20220606.eb585f8";
src = fetchurl {
url = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/spigot-${finalAttrs.version}.tar.gz";
hash = "sha256-JyNNZo/HUPWv5rYtlNYp8Hl0C7i3yxEyKm+77ysN7Ao=";
};
nativeBuildInputs = [
cmake
halibut
perl
];
buildInputs = [
gmp
ncurses
];
outputs = [
"out"
"man"
];
strictDeps = true;
passthru.tests = {
approximation = callPackage ./tests/approximation.nix {
spigot = finalAttrs.finalPackage;
};
};
meta = {
homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
description = "Command-line exact real calculator";
mainProgram = "spigot";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,21 @@
{
stdenv,
spigot,
}:
stdenv.mkDerivation {
pname = "spigot-approximation";
inherit (spigot) version;
nativeBuildInputs = [ spigot ];
dontInstall = true;
buildCommand = ''
[ "$(spigot -b2 -d32 '(pi/1-355/113)')" = "-0.00000000000000000000010001111001" ]
[ "$(spigot -b2 -d32 '(e/1-1457/536)')" = "-0.00000000000000000001110101101011" ]
touch $out
'';
meta.timeout = 10;
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
dtc,
pkgsCross,
}:
stdenv.mkDerivation {
pname = "spike";
version = "1.1.0-unstable-2024-09-21";
src = fetchFromGitHub {
owner = "riscv";
repo = "riscv-isa-sim";
rev = "de5094a1a901d77ff44f89b38e00fefa15d4018e";
sha256 = "sha256-mAgR2VzDgeuIdmPEgrb+MaA89BnWfmNanOVidqn0cgc=";
};
nativeBuildInputs = [ dtc ];
enableParallelBuilding = true;
postPatch = ''
patchShebangs scripts/*.sh
'';
doCheck = true;
# To test whether spike is working, we run the RISC-V hello applications using the RISC-V proxy
# kernel on the Spike emulator and see whether we get the expected output.
doInstallCheck = true;
installCheckPhase =
let
riscvPkgs = pkgsCross.riscv64-embedded;
in
''
runHook preInstallCheck
echo -e "#include<stdio.h>\nint main() {printf(\"Hello, world\");return 0;}" > hello.c
${riscvPkgs.stdenv.cc}/bin/${riscvPkgs.stdenv.cc.targetPrefix}cc -o hello hello.c
$out/bin/spike -m64 ${riscvPkgs.riscv-pk}/bin/pk hello | grep -Fq "Hello, world"
runHook postInstallCheck
'';
meta = with lib; {
description = "RISC-V ISA Simulator";
homepage = "https://github.com/riscv/riscv-isa-sim";
license = licenses.bsd3;
platforms = [
"x86_64-linux"
"aarch64-linux"
];
maintainers = with maintainers; [ blitz ];
};
}

View File

@@ -0,0 +1,65 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
bison,
gcc,
tk,
swarm,
graphviz,
}:
let
binPath = lib.makeBinPath [
gcc
graphviz
tk
swarm
];
in
stdenv.mkDerivation rec {
pname = "spin";
version = "6.5.2";
src = fetchFromGitHub {
owner = "nimble-code";
repo = "Spin";
rev = "version-${version}";
sha256 = "sha256-drvQXfDZCZRycBZt/VNngy8zs4XVJg+d1b4dQXVcyFU=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bison ];
sourceRoot = "${src.name}/Src";
preBuild = ''
mkdir -p $out/bin
mkdir -p $out/share/man/man1
'';
enableParallelBuilding = true;
makeFlags = [ "DESTDIR=$(out)" ];
postInstall = ''
wrapProgram $out/bin/spin --prefix PATH : ${binPath}
mkdir -p $out/share/spin
cp $src/optional_gui/ispin.tcl $out/share/spin
makeWrapper $out/share/spin/ispin.tcl $out/bin/ispin \
--prefix PATH : $out/bin:${binPath}
'';
meta = with lib; {
description = "Formal verification tool for distributed software systems";
homepage = "https://spinroot.com/";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [
pSub
siraben
];
};
}

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