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,44 @@
{
lib,
stdenv,
fetchFromGitHub,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "sl";
version = "5.05";
src = fetchFromGitHub {
owner = "eyJhb";
repo = "sl";
rev = version;
sha256 = "11a1rdgb8wagikhxgm81g80g5qsl59mv4qgsval3isykqh8729bj";
};
buildInputs = [ ncurses ];
makeFlags = [ "CC:=$(CC)" ];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin sl
install -Dm644 -t $out/share/man/man1 sl.1{,.ja}
runHook postInstall
'';
meta = with lib; {
description = "Steam Locomotive runs across your terminal when you type 'sl'";
homepage = "http://www.tkl.iis.u-tokyo.ac.jp/~toyoda/index_e.html";
license = rec {
shortName = "Toyoda Masashi's free software license";
fullName = shortName;
url = "https://github.com/eyJhb/sl/blob/master/LICENSE";
};
maintainers = with maintainers; [ eyjhb ];
platforms = platforms.unix;
mainProgram = "sl";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
fetchFromGitHub,
python312Packages,
}:
let
version = "0.1.3";
in
python312Packages.buildPythonApplication rec {
pname = "sl1-to-photon";
inherit version;
src = fetchFromGitHub {
owner = "cab404";
repo = "SL1toPhoton";
rev = "7edc6ea99818622f5d49ac7af80ddd4916b8c19f";
sha256 = "sha256-ssFfjlBMi3FHosDBUA2gs71VUIBkEdPVcV3STNxmOIM=";
};
pythonPath = with python312Packages; [
pyphotonfile
pillow
numpy
pyside2
shiboken2
];
format = "setuptools";
installPhase = ''
install -D -m 0755 SL1_to_Photon.py $out/bin/${pname}
'';
meta = with lib; {
maintainers = [ maintainers.cab404 ];
license = licenses.gpl3Plus;
description = "Tool for converting Slic3r PE's SL1 files to Photon files for the Anycubic Photon 3D-Printer";
homepage = "https://github.com/cab404/SL1toPhoton";
mainProgram = "sl1-to-photon";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
python3,
fetchFromGitHub,
scribus,
}:
python3.pkgs.buildPythonApplication {
pname = "sla2pdf";
version = "0.0.1-unstable-2023-05-17";
pyproject = true;
src = fetchFromGitHub {
owner = "sla2pdf-team";
repo = "sla2pdf";
rev = "1524e6ca490da71eb201ff13bf32ef7206b0e4ef";
hash = "sha256-mvZ6Es8TLJmNwdacRJ3Gw5z0nI6xW1igz50yjIFBUds=";
};
build-system = [ python3.pkgs.setuptools ];
makeWrapperArgs = [
"--prefix PATH : ${lib.makeBinPath [ scribus ]}"
];
meta = {
description = "Convert Scribus SLA files to PDF from the command line";
homepage = "https://github.com/sla2pdf-team/sla2pdf";
license = with lib.licenses; [
cc-by-40
mpl20
];
maintainers = with lib.maintainers; [ ob7 ];
mainProgram = "sla2pdf";
};
}

View File

@@ -0,0 +1,67 @@
# slack-cli must be configured using the SLACK_CLI_TOKEN environment variable.
# Using `slack init` will not work because it tries to write to the Nix store.
#
# There is no reason that we couldn't change the file path that slack-cli uses
# for token storage, except that it would make the Nix package inconsistent with
# upstream and other distributions.
{
stdenv,
lib,
fetchFromGitHub,
curl,
jq,
coreutils,
gnugrep,
gnused,
runtimeShell,
}:
stdenv.mkDerivation rec {
pname = "slack-cli";
version = "0.18.0";
src = fetchFromGitHub {
owner = "rockymadden";
repo = "slack-cli";
rev = "v${version}";
sha256 = "022yr3cpfg0v7cxi62zzk08vp0l3w851qpfh6amyfgjiynnfyddl";
};
dontBuild = true;
installPhase = ''
mkdir -p "$out/bin"
cp src/slack "$out/bin/.slack-wrapped"
cat <<-WRAPPER > "$out/bin/slack"
#!${runtimeShell}
[ "\$1" = "init" -a -z "\$SLACK_CLI_TOKEN" ] && cat <<-'MESSAGE' >&2
WARNING: slack-cli must be configured using the SLACK_CLI_TOKEN
environment variable. Using \`slack init\` will not work because it tries
to write to the Nix store.
MESSAGE
export PATH=${
lib.makeBinPath [
curl
jq
coreutils
gnugrep
gnused
]
}:"\$PATH"
exec "$out/bin/.slack-wrapped" "\$@"
WRAPPER
chmod +x "$out/bin/slack"
'';
meta = {
license = lib.licenses.mit;
maintainers = [ ];
mainProgram = "slack";
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "slack-term";
version = "0.5.0";
src = fetchFromGitHub {
owner = "erroneousboat";
repo = "slack-term";
rev = "v${version}";
sha256 = "1fbq7bdhy70hlkklppimgdjamnk0v059pg73xm9ax1f4616ki1m6";
};
vendorHash = null;
meta = with lib; {
description = "Slack client for your terminal";
homepage = "https://github.com/erroneousboat/slack-term";
license = licenses.mit;
maintainers = [ ];
mainProgram = "slack-term";
};
}

View File

@@ -0,0 +1,30 @@
{
pname,
version,
src,
passthru,
meta,
stdenvNoCC,
undmg,
}:
stdenvNoCC.mkDerivation {
inherit
pname
version
src
passthru
meta
;
nativeBuildInputs = [ undmg ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -a Slack.app $out/Applications
runHook postInstall
'';
}

View File

@@ -0,0 +1,154 @@
{
pname,
version,
src,
passthru,
meta,
lib,
stdenv,
dpkg,
makeWrapper,
asar,
alsa-lib,
at-spi2-atk,
at-spi2-core,
atk,
cairo,
cups,
curl,
dbus,
expat,
fontconfig,
freetype,
gdk-pixbuf,
glib,
gtk3,
libGL,
libappindicator-gtk3,
libdrm,
libnotify,
libpulseaudio,
libuuid,
libxcb,
libxkbcommon,
libgbm,
nspr,
nss,
pango,
pipewire,
systemd,
wayland,
xdg-utils,
xorg,
}:
stdenv.mkDerivation rec {
inherit
pname
version
src
passthru
meta
;
rpath =
lib.makeLibraryPath [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
curl
dbus
expat
fontconfig
freetype
gdk-pixbuf
glib
gtk3
libGL
libappindicator-gtk3
libdrm
libnotify
libpulseaudio
libuuid
libxcb
libxkbcommon
libgbm
nspr
nss
pango
pipewire
stdenv.cc.cc
systemd
wayland
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxkbfile
xorg.libxshmfence
]
+ ":${lib.getLib stdenv.cc.cc}/lib64";
buildInputs = [
gtk3 # needed for GSETTINGS_SCHEMAS_PATH
];
nativeBuildInputs = [
dpkg
makeWrapper
asar
];
dontUnpack = true;
dontBuild = true;
dontPatchELF = true;
installPhase = ''
runHook preInstall
# The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
dpkg --fsys-tarfile $src | tar --extract
rm -rf usr/share/lintian
mkdir -p $out
mv usr/* $out
# Otherwise it looks "suspicious"
chmod -R g-w $out
for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
patchelf --set-rpath ${rpath}:$out/lib/slack $file || true
done
# Replace the broken bin/slack symlink with a startup wrapper.
# Make xdg-open overrideable at runtime.
rm $out/bin/slack
makeWrapper $out/lib/slack/slack $out/bin/slack \
--prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
--suffix PATH : ${lib.makeBinPath [ xdg-utils ]} \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations,WebRTCPipeWireCapturer --enable-wayland-ime=true}}"
# Fix the desktop link
substituteInPlace $out/share/applications/slack.desktop \
--replace /usr/bin/ $out/bin/ \
--replace /usr/share/pixmaps/slack.png slack \
--replace bin/slack "bin/slack -s"
# Prevent Un-blacklist pipewire integration to enable screen sharing on wayland.
# https://github.com/flathub/com.slack.Slack/issues/101#issuecomment-1807073763
sed -i -e 's/,"WebRTCPipeWireCapturer"/,"LebRTCPipeWireCapturer"/' $out/lib/slack/resources/app.asar
runHook postInstall
'';
}

View File

@@ -0,0 +1,40 @@
{
callPackage,
fetchurl,
lib,
stdenvNoCC,
}:
let
inherit (stdenvNoCC.hostPlatform) system;
sources = import ./sources.nix { inherit fetchurl; };
pname = "slack";
passthru = {
updateScript = ./update.sh;
};
meta = {
description = "Desktop client for Slack";
homepage = "https://slack.com";
changelog = "https://slack.com/release-notes";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
mmahut
prince213
teutat3s
];
platforms = [
"x86_64-darwin"
"x86_64-linux"
"aarch64-darwin"
];
mainProgram = "slack";
};
in
callPackage (if stdenvNoCC.hostPlatform.isDarwin then ./darwin.nix else ./linux.nix) {
inherit pname passthru meta;
inherit (sources.${system} or (throw "Unsupported system: ${system}")) version src;
}

View File

@@ -0,0 +1,26 @@
# Generated by ./update.sh - do not update manually!
# Last updated: 2025-10-01
{ fetchurl }:
{
aarch64-darwin = {
version = "4.46.99";
src = fetchurl {
url = "https://downloads.slack-edge.com/desktop-releases/mac/arm64/4.46.99/Slack-4.46.99-macOS.dmg";
hash = "sha256-PTRe4D1UcklyrFN6NWLm8v1khOgSfVwopbi47SusEDI=";
};
};
x86_64-darwin = {
version = "4.46.99";
src = fetchurl {
url = "https://downloads.slack-edge.com/desktop-releases/mac/x64/4.46.99/Slack-4.46.99-macOS.dmg";
hash = "sha256-rDuRCf1sHZaie91kW0qrdSUrvugCTq1mxnooxoZVPdY=";
};
};
x86_64-linux = {
version = "4.46.99";
src = fetchurl {
url = "https://downloads.slack-edge.com/desktop-releases/linux/x64/4.46.99/slack-desktop-4.46.99-amd64.deb";
hash = "sha256-YS9jgOx1Qx+wqsBul4R2Rd2vRV4qA3lZuUqghDnYl3c=";
};
};
}

57
pkgs/by-name/sl/slack/update.sh Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env nix-shell
#! nix-shell -i bash --pure -p cacert curl jq nix
set -euo pipefail
cd $(readlink -e $(dirname "${BASH_SOURCE[0]}"))
aarch64_darwin_data=$(curl -s 'https://slack.com/api/desktop.latestRelease?arch=arm64&variant=dmg')
x86_64_darwin_data=$(curl -s 'https://slack.com/api/desktop.latestRelease?arch=x64&variant=dmg')
x86_64_linux_data=$(curl -s 'https://slack.com/api/desktop.latestRelease?arch=x64&variant=deb')
aarch64_darwin_version=$(jq -r .version <<< "$aarch64_darwin_data")
x86_64_darwin_version=$(jq -r .version <<< "$x86_64_darwin_data")
x86_64_linux_version=$(jq -r .version <<< "$x86_64_linux_data")
aarch64_darwin_url=$(jq -r .download_url <<< "$aarch64_darwin_data")
x86_64_darwin_url=$(jq -r .download_url <<< "$x86_64_darwin_data")
x86_64_linux_url=$(jq -r .download_url <<< "$x86_64_linux_data")
aarch64_darwin_hash=$(nix-prefetch-url "$aarch64_darwin_url")
x86_64_darwin_hash=$(nix-prefetch-url "$x86_64_darwin_url")
x86_64_linux_hash=$(nix-prefetch-url "$x86_64_linux_url")
# use friendlier hashes
aarch64_darwin_hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$aarch64_darwin_hash")
x86_64_darwin_hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$x86_64_darwin_hash")
x86_64_linux_hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$x86_64_linux_hash")
cat >sources.nix <<EOF
# Generated by ./update.sh - do not update manually!
# Last updated: $(date +%F)
{ fetchurl }:
{
aarch64-darwin = {
version = "$aarch64_darwin_version";
src = fetchurl {
url = "$aarch64_darwin_url";
hash = "$aarch64_darwin_hash";
};
};
x86_64-darwin = {
version = "$x86_64_darwin_version";
src = fetchurl {
url = "$x86_64_darwin_url";
hash = "$x86_64_darwin_hash";
};
};
x86_64-linux = {
version = "$x86_64_linux_version";
src = fetchurl {
url = "$x86_64_linux_url";
hash = "$x86_64_linux_hash";
};
};
}
EOF

View File

@@ -0,0 +1,49 @@
{
buildGoModule,
lib,
fetchFromGitHub,
stdenv,
nix-update-script,
darwin,
}:
buildGoModule rec {
pname = "slackdump";
version = "3.1.7";
src = fetchFromGitHub {
owner = "rusq";
repo = "slackdump";
tag = "v${version}";
hash = "sha256-rVNXVkM4DpfNdqDGzaw23zOL/VSbzKsCyOc/Cq/mtZM=";
};
nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin darwin.IOKitTools;
checkFlags =
let
skippedTests = [
"TestSession_saveUserCache"
"TestSession_GetUsers"
"Test_exportV3" # This was skipped on upstream's CI. It is seemed that some file are missed
];
in
[
"-skip=^${builtins.concatStringsSep "$|^" skippedTests}$"
];
vendorHash = "sha256-XnEuxYxrkKTJcXrDFQB4tw3dCJFVwGkw8kKJm+y+ees=";
__darwinAllowLocalNetworking = true;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/rusq/slackdump";
changelog = "https://github.com/rusq/slackdump/releases/tag/v${version}";
description = "Tools for saving Slack's data without admin privileges";
maintainers = with lib.maintainers; [ bot-wxt1221 ];
mainProgram = "slackdump";
license = lib.licenses.gpl3Plus;
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
electron,
copyDesktopItems,
makeDesktopItem,
nix-update-script,
}:
buildNpmPackage (finalAttrs: {
pname = "slacky";
version = "0.0.6";
src = fetchFromGitHub {
owner = "andirsun";
repo = "Slacky";
tag = "v${finalAttrs.version}";
hash = "sha256-70mexW+8+0hvVr2PYGtQuBiTh6xo2WFDqLzeCZilgaE=";
};
npmDepsHash = "sha256-Vqpg+j2mIv5XKzX//ptt9gT+SWPXpVSKSCM+E5cmuCQ=";
npmPackFlags = [
"--ignore-scripts"
];
makeCacheWritable = true;
npmFlags = [
"--legacy-peer-deps"
];
strictDeps = true;
nativeBuildInputs = [
copyDesktopItems
];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
postInstall = ''
mkdir -p $out/share/icons
ln -s $out/lib/node_modules/slacky/build/icons/icon.png $out/share/icons/slacky.png
makeWrapper ${lib.getExe electron} $out/bin/slacky \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags $out/lib/node_modules/slacky/
'';
desktopItems = lib.singleton (makeDesktopItem {
name = "slacky";
exec = "slacky %u";
icon = "slacky";
desktopName = "Slacky";
comment = "An unofficial Slack desktop client for arm64 Linux";
startupWMClass = "com.andersonlaverde.slacky";
type = "Application";
categories = [
"Network"
"InstantMessaging"
];
mimeTypes = [
"x-scheme-handler/slack"
];
});
passthru.updateScript = nix-update-script { };
meta = {
description = "Unofficial Slack desktop client for arm64 Linux";
homepage = "https://github.com/andirsun/Slacky";
changelog = "https://github.com/andirsun/Slacky/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ awwpotato ];
platforms = lib.platforms.linux;
mainProgram = "slacky";
};
})

View File

@@ -0,0 +1,80 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
which,
zip,
wxGTK32,
gtk3,
sfml_2,
fluidsynth,
curl,
ftgl,
glew,
lua,
mpg123,
wrapGAppsHook3,
unstableGitUpdater,
libwebp,
}:
stdenv.mkDerivation {
pname = "slade";
version = "3.2.7-unstable-2025-09-30";
src = fetchFromGitHub {
owner = "sirjuddington";
repo = "SLADE";
rev = "8ad6609784de6fef6b35f1508b6d5d8a3084aa17";
hash = "sha256-XYg0k5ZOZ/M/4X0+6pjJEMK0sIVqu/1LtmJaeq6iOvM=";
};
nativeBuildInputs = [
cmake
pkg-config
which
zip
wrapGAppsHook3
];
buildInputs = [
wxGTK32
gtk3
sfml_2
fluidsynth
curl
ftgl
glew
lua
mpg123
libwebp
];
cmakeFlags = [
"-DwxWidgets_LIBRARIES=${wxGTK32}/lib"
(lib.cmakeFeature "CL_WX_CONFIG" (lib.getExe' (lib.getDev wxGTK32) "wx-config"))
];
env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
preFixup = ''
gappsWrapperArgs+=(
--prefix GDK_BACKEND : x11
)
'';
passthru.updateScript = unstableGitUpdater {
url = "https://github.com/sirjuddington/SLADE.git";
};
meta = {
description = "Doom editor";
homepage = "http://slade.mancubus.net/";
mainProgram = "slade";
license = lib.licenses.gpl2Only; # https://github.com/sirjuddington/SLADE/issues/1754
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ Gliczy ];
};
}

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
which,
zip,
wxGTK32,
gtk3,
sfml_2,
fluidsynth,
curl,
freeimage,
ftgl,
glew,
lua,
mpg123,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slade";
version = "3.2.7";
src = fetchFromGitHub {
owner = "sirjuddington";
repo = "SLADE";
tag = finalAttrs.version;
hash = "sha256-+i506uzO2q/9k7en6CKs4ui9gjszrMOYwW+V9W5Lvns=";
};
nativeBuildInputs = [
cmake
pkg-config
which
zip
wrapGAppsHook3
];
buildInputs = [
wxGTK32
gtk3
sfml_2
fluidsynth
curl
freeimage
ftgl
glew
lua
mpg123
];
cmakeFlags = [
"-DwxWidgets_LIBRARIES=${wxGTK32}/lib"
(lib.cmakeFeature "CL_WX_CONFIG" (lib.getExe' (lib.getDev wxGTK32) "wx-config"))
];
env.NIX_CFLAGS_COMPILE = "-Wno-narrowing";
preFixup = ''
gappsWrapperArgs+=(
--prefix GDK_BACKEND : x11
)
'';
meta = {
description = "Doom editor";
homepage = "http://slade.mancubus.net/";
changelog = "https://github.com/sirjuddington/SLADE/releases/tag/${finalAttrs.version}";
mainProgram = "slade";
license = lib.licenses.gpl2Only; # https://github.com/sirjuddington/SLADE/issues/1754
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ Gliczy ];
};
})

View File

@@ -0,0 +1,109 @@
{
lib,
stdenv,
fetchurl,
libiconv,
libpng,
ncurses,
readline,
zlib,
writeScript,
}:
stdenv.mkDerivation rec {
pname = "slang";
version = "2.3.3";
src = fetchurl {
url = "https://www.jedsoft.org/releases/slang/${pname}-${version}.tar.bz2";
sha256 = "sha256-+RRQVK4TGXPGEgjqgkhtXdEOPFza0jt8SgYXdDyPWhg=";
};
outputs = [
"out"
"dev"
"man"
"doc"
];
# Fix some wrong hardcoded paths
preConfigure = ''
sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" configure
sed -i -e "s|/usr/lib/terminfo|${ncurses.out}/lib/terminfo|" src/sltermin.c
sed -i -e "s|/bin/ln|ln|" src/Makefile.in
sed -i -e "s|-ltermcap|-lncurses|" ./configure
'';
configureFlags = [
"--without-pcre"
"--with-png=${libpng.dev}"
"--with-readline=${readline.dev}"
"--with-z=${zlib.dev}"
];
buildInputs = [
libpng
readline
zlib
]
++ lib.optionals (stdenv.hostPlatform.isDarwin) [ libiconv ];
propagatedBuildInputs = [ ncurses ];
buildFlags = lib.optional stdenv.hostPlatform.isStatic "static";
installTargets = lib.optional stdenv.hostPlatform.isStatic "install-static";
preBuild = ''
makeFlagsArray+=(AR_CR="${stdenv.cc.targetPrefix}ar cr")
'';
enableParallelBuilding = true;
postInstall = ''
find "$out"/lib/ -name '*.so' -exec chmod +x "{}" \;
sed '/^Libs:/s/$/ -lncurses/' -i "$dev"/lib/pkgconfig/slang.pc
'';
passthru = {
updateScript = writeScript "update-slang" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl pcre common-updater-scripts
set -eu -o pipefail
# Expect the text in format of 'Version 2.3.3</td>'
new_version="$(curl -s https://www.jedsoft.org/slang/ |
pcregrep -o1 'Version ([0-9.]+)</td>')"
update-source-version ${pname} "$new_version"
'';
};
meta = with lib; {
description = "Small, embeddable multi-platform programming library";
longDescription = ''
S-Lang is an interpreted language that was designed from the start to be
easily embedded into a program to provide it with a powerful extension
language. Examples of programs that use S-Lang as an extension language
include the jed text editor and the slrn newsreader. Although S-Lang does
not exist as a separate application, it is distributed with a quite
capable program called slsh ("slang-shell") that embeds the interpreter
and allows one to execute S-Lang scripts, or simply experiment with S-Lang
at an interactive prompt. Many of the the examples in this document are
presented in the context of one of the above applications.
S-Lang is also a programmer's library that permits a programmer to develop
sophisticated platform-independent software. In addition to providing the
S-Lang interpreter, the library provides facilities for screen management,
keymaps, low-level terminal I/O, etc. However, this document is concerned
only with the extension language and does not address these other features
of the S-Lang library. For information about the other components of the
library, the reader is referred to the S-Lang Library C Programmer's
Guide.
'';
homepage = "http://www.jedsoft.org/slang/";
license = licenses.gpl2Plus;
maintainers = [ ];
mainProgram = "slsh";
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
withBanner ? "Grub Bootloader", # use override to specify your own banner text
withStyle ? "light", # use override to specify one of "dark" / "orange" / "bigSur"
}:
assert builtins.any (s: withStyle == s) [
"light"
"dark"
"orange"
"bigSur"
];
stdenv.mkDerivation {
pname = "sleek-grub-theme";
version = "unstable-2024-08-11";
src = fetchFromGitHub {
owner = "sandesh236";
repo = "sleek--themes";
rev = "0c47e645ccc2d72aa165e9d994f9d09f58de9f6d";
hash = "sha256-H4s4CSR8DaH8RT9w40hkguNNcC0U8gHKS2FLt+FApeA=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/
cp -r 'Sleek theme-${withStyle}'/sleek/* $out/
sed -i "s/Grub Bootloader/${withBanner}/" $out/theme.txt
runHook postInstall
'';
meta = {
description = "Grub bootloader themes, contains light/dark/orange/bigSur styles";
homepage = "https://github.com/sandesh236/sleek--themes";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ luochen1990 ];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchurl,
undmg,
appimageTools,
makeWrapper,
}:
let
pname = "sleek-todo";
version = "2.0.14";
src =
fetchurl
{
x86_64-darwin = {
url = "https://github.com/ransome1/sleek/releases/download/v${version}/sleek-2.0.14-mac-x64.dmg";
hash = "sha256-f5mMSRa+gAoakOy9TSZeALqCylGLd0nUJIh8o+LWAro=";
};
x86_64-linux = {
url = "https://github.com/ransome1/sleek/releases/download/v${version}/sleek-2.0.14.AppImage";
hash = "sha256-d2fLsCI7peuNBtjgHs1qumgPAF9eJeBYiIIffoSv9Jk=";
};
}
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.system}");
meta = {
description = "Todo manager based on todo.txt syntax";
homepage = "https://github.com/ransome1/sleek";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ByteSudoer ];
mainProgram = "sleek-todo";
platforms = [
"x86_64-linux"
"x86_64-darwin"
];
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
if stdenv.hostPlatform.isDarwin then
stdenv.mkDerivation {
inherit
pname
version
src
meta
;
sourceRoot = ".";
nativeBuildInputs = [ undmg ];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -r *.app $out/Applications/
runHook postInstall
'';
}
else
appimageTools.wrapType2 {
inherit
pname
version
src
meta
;
nativeBuildInputs = [ makeWrapper ];
extraInstallCommands = ''
wrapProgram $out/bin/sleek-todo \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
mkdir -p $out/share/{applications,sleek}
cp -a ${appimageContents}/{locales,resources} $out/share/sleek
cp -a ${appimageContents}/usr/share/icons $out/share
install -Dm 444 ${appimageContents}/sleek.desktop $out/share/applications
substituteInPlace $out/share/applications/sleek.desktop \
--replace-warn 'Exec=AppRun' 'Exec=${pname}'
'';
}

View File

@@ -0,0 +1,27 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "sleek";
version = "0.5.0";
src = fetchFromGitHub {
owner = "nrempel";
repo = "sleek";
rev = "v${version}";
hash = "sha256-4op0EqJWRGEQwXu5DjFBM1ia9nKiE5QTg+pbaeg4+ag=";
};
cargoHash = "sha256-0AB2Z++WnOQ06CkKIHBydgV4VlLGqhlKGAQ0blPOFPo=";
meta = with lib; {
description = "CLI tool for formatting SQL";
homepage = "https://github.com/nrempel/sleek";
license = licenses.mit;
maintainers = with maintainers; [ xrelkd ];
mainProgram = "sleek";
};
}

View File

@@ -0,0 +1,36 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "sleep-on-lan";
version = "1.1.1";
src = fetchFromGitHub {
owner = "SR-G";
repo = "sleep-on-lan";
rev = "${version}-RELEASE";
sha256 = "sha256-WooFGIdXIIoJPMqmPpnT+bc+P+IARMSxa3CvXY9++mw=";
};
sourceRoot = "${src.name}/src";
vendorHash = "sha256-JqDDG53khtDdMLVOscwqi0oGviF+3DMkv5tkHvp1gJc=";
ldflags = [
"-s"
"-w"
"-X main.BuildVersion=${version}"
"-X main.BuildVersionLabel=nixpkgs"
];
meta = with lib; {
homepage = "https://github.com/SR-G/sleep-on-lan";
description = "Multi-platform process allowing to sleep on LAN a Linux or Windows computer, through wake-on-lan (reversed) magic packets or through HTTP REST requests";
license = licenses.asl20;
platforms = platforms.linux;
maintainers = with maintainers; [ devusb ];
mainProgram = "sleep-on-lan";
};
}

View File

@@ -0,0 +1,103 @@
{
lib,
stdenv,
fetchFromGitLab,
python3Packages,
arpack-mpi,
petsc,
mpi,
mpiCheckPhaseHook,
pythonSupport ? false,
withExamples ? false,
withArpack ? stdenv.hostPlatform.isLinux,
}:
assert petsc.mpiSupport;
assert pythonSupport -> petsc.pythonSupport;
stdenv.mkDerivation (finalAttrs: {
pname = "slepc";
version = "3.24.0";
src = fetchFromGitLab {
owner = "slepc";
repo = "slepc";
tag = "v${finalAttrs.version}";
hash = "sha256-nvzX0p/H3EYR8+7jD+I4FdvU+WstxR/U4Upcn7yZULk=";
};
postPatch = ''
# Fix slepc4py install prefix
substituteInPlace config/packages/slepc4py.py \
--replace-fail "slepc.prefixdir,'lib'" \
"slepc.prefixdir,'${python3Packages.python.sitePackages}'"
patchShebangs lib/slepc/bin
'';
nativeBuildInputs = [
python3Packages.python
]
++ lib.optionals pythonSupport [
python3Packages.setuptools
python3Packages.cython
];
configureFlags =
lib.optionals withArpack [
"--with-arpack=1"
]
++ lib.optionals pythonSupport [
"--with-slepc4py=1"
];
buildInputs = [
mpi
]
++ lib.optionals withArpack [
arpack-mpi
];
propagatedBuildInputs = [
petsc
];
enableParallelBuilding = true;
installTargets = [ (if withExamples then "install" else "install-lib") ];
__darwinAllowLocalNetworking = true;
nativeInstallCheckInputs = [
mpiCheckPhaseHook
]
++ lib.optionals pythonSupport [
python3Packages.pythonImportsCheckHook
python3Packages.unittestCheckHook
];
doInstallCheck = true;
installCheckTarget = [ "check_install" ];
unittestFlagsArray = [
"-s"
"src/binding/slepc4py/test"
"-v"
];
pythonImportsCheck = [ "slepc4py" ];
shellHook = ./setup-hook.sh;
meta = {
description = "Scalable Library for Eigenvalue Problem Computations";
homepage = "https://slepc.upv.es";
changelog = "https://gitlab.com/slepc/slepc/blob/v${finalAttrs.version}/CHANGELOG.md";
license = with lib.licenses; [
bsd2
];
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ qbisi ];
# Possible error running Fortran src/eps/tests/test7f with 1 MPI process
broken = stdenv.hostPlatform.isDarwin && withArpack;
};
})

View File

@@ -0,0 +1 @@
export SLEPC_DIR=@out@

View File

@@ -0,0 +1,70 @@
{
blas,
check,
cmake,
doxygen,
fetchFromGitHub,
highs,
lapack,
lib,
pkg-config,
pythonSupport ? false,
python3Packages,
suitesparse,
stdenv,
trlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sleqp";
version = "1.0.2";
src = fetchFromGitHub {
owner = "chrhansk";
repo = "sleqp";
rev = "v${finalAttrs.version}";
hash = "sha256-ycO7s13LT/Gi01XFjTeZQCN+TiAVlp2zXjrlI7vfgTk=";
};
postPatch = ''
substituteInPlace bindings/python/cmake/python_install.cmake.in \
--replace-fail "--no-deps" "--no-deps --no-cache-dir --no-build-isolation --prefix $out"
'';
nativeBuildInputs = [
doxygen
cmake
pkg-config
];
buildInputs = [
blas
check
highs
lapack
suitesparse
trlib
]
++ lib.optionals pythonSupport [
python3Packages.cython
python3Packages.numpy
python3Packages.pip
python3Packages.pytest
python3Packages.setuptools
python3Packages.scipy
python3Packages.tox
python3Packages.wheel
];
cmakeFlags = [
(lib.cmakeBool "SLEQP_ENABLE_PYTHON" pythonSupport)
"-DSLEQP_LPS=HiGHS"
];
meta = {
description = "Active set-based NLP solver";
homepage = "https://github.com/chrhansk/sleqp";
changelog = "https://github.com/chrhansk/sleqp/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.lgpl3Only;
maintainers = with lib.maintainers; [ nim65s ];
};
})

View File

@@ -0,0 +1,119 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
ant,
jdk,
perl,
stripJavaArchivesHook,
afflib,
libewf,
openssl,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sleuthkit";
version = "4.12.1"; # Note: when updating don't forget to also update the rdeps outputHash
src = fetchFromGitHub {
owner = "sleuthkit";
repo = "sleuthkit";
rev = "sleuthkit-${finalAttrs.version}";
hash = "sha256-q51UY2lIcLijycNaq9oQIwUXpp/1mfc3oPN4syOPF44=";
};
# Fetch libraries using a fixed output derivation
rdeps = stdenv.mkDerivation {
name = "sleuthkit-${finalAttrs.version}-deps";
inherit (finalAttrs) src;
nativeBuildInputs = [
ant
jdk
];
# unpack, build, install
dontConfigure = true;
buildPhase = ''
export IVY_HOME=$NIX_BUILD_TOP/.ant
pushd bindings/java
ant retrieve-deps
popd
pushd case-uco/java
ant get-ivy-dependencies
popd
'';
installPhase = ''
mkdir -m 755 -p $out/bindings/java
cp -r bindings/java/lib $out/bindings/java
mkdir -m 755 -p $out/case-uco/java
cp -r case-uco/java/lib $out/case-uco/java
cp -r $IVY_HOME/lib $out
chmod -R 755 $out/lib
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "sha256-mc/KQrwn3xpPI0ngOLcpoQDaJJm/rM8XgaX//5PiRZk=";
};
postUnpack = ''
export IVY_HOME="$NIX_BUILD_TOP/.ant"
export ANT_ARGS="-Doffline=true -Ddefault-jar-location=$IVY_HOME/lib"
# pre-positioning these jar files allows -Doffline=true to work
mkdir -p source/{bindings,case-uco}/java $IVY_HOME
cp -r ${finalAttrs.rdeps}/bindings/java/lib source/bindings/java
chmod -R 755 source/bindings/java
cp -r ${finalAttrs.rdeps}/case-uco/java/lib source/case-uco/java
chmod -R 755 source/case-uco/java
cp -r ${finalAttrs.rdeps}/lib $IVY_HOME
chmod -R 755 $IVY_HOME
'';
postPatch = ''
substituteInPlace tsk/img/ewf.cpp --replace libewf_handle_read_random libewf_handle_read_buffer_at_offset
'';
enableParallelBuilding = true;
nativeBuildInputs = [
autoreconfHook
ant
jdk
perl
stripJavaArchivesHook
];
buildInputs = [
afflib
libewf
openssl
zlib
];
# Hack to fix the RPATH
preFixup = ''
rm -rf */.libs
'';
meta = with lib; {
description = "Forensic/data recovery tool";
homepage = "https://www.sleuthkit.org/";
changelog = "https://github.com/sleuthkit/sleuthkit/blob/${finalAttrs.src.rev}/NEWS.txt";
maintainers = with maintainers; [
raskin
gfrascadorio
];
platforms = platforms.unix;
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # dependencies
];
license = licenses.ipl10;
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
bash,
buildGoModule,
fetchFromGitHub,
go,
}:
buildGoModule rec {
pname = "slides";
version = "0.9.0";
src = fetchFromGitHub {
owner = "maaslalani";
repo = "slides";
rev = "v${version}";
sha256 = "sha256-K8VsqaNUPxh3/Yddy6DFiOyjRuZ6r6bU456Pm31A1og=";
};
nativeCheckInputs = [
bash
go
];
vendorHash = "sha256-c3YCf22L5+rTmH5ePeJ0/goRj5rKY6v+Zon3183MhMY=";
ldflags = [
"-s"
"-w"
"-X=main.Version=${version}"
];
meta = {
description = "Terminal based presentation tool";
homepage = "https://github.com/maaslalani/slides";
changelog = "https://github.com/maaslalani/slides/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
maaslalani
penguwin
];
mainProgram = "slides";
};
}

1080
pkgs/by-name/sl/slimevr-server/deps.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,36 @@
diff --git a/build.gradle.kts b/build.gradle.kts
index 79534cdf..4f298e66 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,3 +1,2 @@
plugins {
- id("org.ajoberstar.grgit")
}
diff --git a/server/desktop/build.gradle.kts b/server/desktop/build.gradle.kts
index 9ebb84a7..6130e45f 100644
--- a/server/desktop/build.gradle.kts
+++ b/server/desktop/build.gradle.kts
@@ -13,7 +13,6 @@ plugins {
application
id("com.gradleup.shadow")
id("com.github.gmazzo.buildconfig")
- id("org.ajoberstar.grgit")
}
kotlin {
@@ -86,12 +85,10 @@ buildConfig {
useKotlinOutput { topLevelConstants = true }
packageName("dev.slimevr.desktop")
- val gitVersionTag = providers.exec {
- commandLine("git", "--no-pager", "tag", "--sort", "-taggerdate", "--points-at", "HEAD")
- }.standardOutput.asText.get().split('\n').first()
- buildConfigField("String", "GIT_COMMIT_HASH", "\"${grgit.head().abbreviatedId}\"")
+ val gitVersionTag = "@version@"
+ buildConfigField("String", "GIT_COMMIT_HASH", "\"NOT AVAILABLE\"")
buildConfigField("String", "GIT_VERSION_TAG", "\"${gitVersionTag.trim()}\"")
- buildConfigField("boolean", "GIT_CLEAN", grgit.status().isClean.toString())
+ buildConfigField("boolean", "GIT_CLEAN", "true")
}
tasks.run<JavaExec> {

View File

@@ -0,0 +1,104 @@
{
lib,
stdenv,
runCommand,
replaceVars,
slimevr,
jdk17,
gradle,
hidapi,
makeWrapper,
}:
let
# JDK can't be headless while SlimeVR uses JavaOSC 0.8.
java = jdk17;
# Without this the hidapi bundled with `org.hid4java:hid4java` will be used.
# The bundled version won't be able to find `libudev.so.1`.
javaOptions =
let
# hid4java tries to load `libhidapi.so` which doesn't exist in Nix's hidapi.
# The `libhidapi.so` it expects is actually `libhidapi-hidraw.so`.
libhidapi = runCommand "libhidapi" { } ''
mkdir -p $out/lib
ln -s ${hidapi}/lib/libhidapi-hidraw.so $out/lib/libhidapi.so
'';
in
"-Djna.library.path='${
lib.makeLibraryPath [
hidapi
libhidapi
]
}'";
in
stdenv.mkDerivation (finalAttrs: {
pname = "slimevr-server";
inherit (slimevr)
src
version
;
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
patches = [
# Upstream code uses Git to find the program version
(replaceVars ./no-grgit.patch {
inherit (finalAttrs) version;
})
];
postPatch = ''
# Disable Android, so its files don't have to be patched.
substituteInPlace settings.gradle.kts \
--replace-fail 'include(":server:android")' ""
'';
nativeBuildInputs = [
gradle
makeWrapper
];
# this is required for using mitm-cache on Darwin
__darwinAllowLocalNetworking = true;
gradleFlags = [ "-Dorg.gradle.java.home=${java}" ];
gradleBuildTask = "shadowJar";
doCheck = true;
installPhase = ''
runHook preInstall
install -Dm644 server/desktop/build/libs/slimevr.jar $out/share/slimevr/slimevr.jar
makeWrapper ${java}/bin/java $out/bin/slimevr-server \
--add-flags "${javaOptions}" \
--add-flags "-jar $out/share/slimevr/slimevr.jar"
runHook postInstall
'';
passthru = {
inherit java javaOptions;
# `slimevr-server` is updated by the `slimevr` update script.
};
meta = {
homepage = "https://docs.slimevr.dev/";
description = "App for facilitating full-body tracking in virtual reality";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [
gale-username
imurx
];
platforms = with lib.platforms; darwin ++ linux;
mainProgram = "slimevr-server";
};
})

View File

@@ -0,0 +1,22 @@
diff --git a/gui/vite.config.ts b/gui/vite.config.ts
index 2171bccd..b4db20b9 100644
--- a/gui/vite.config.ts
+++ b/gui/vite.config.ts
@@ -5,14 +5,10 @@ import { execSync } from 'child_process';
import path from 'path';
import { visualizer } from 'rollup-plugin-visualizer';
-const commitHash = execSync('git rev-parse --verify --short HEAD').toString().trim();
-const versionTag = execSync('git --no-pager tag --sort -taggerdate --points-at HEAD')
- .toString()
- .split('\n')[0]
- .trim();
+const commitHash = "";
+const versionTag = "@version@";
// If not empty then it's not clean
-const gitCleanString = execSync('git status --porcelain').toString();
-const gitClean = gitCleanString ? false : true;
+const gitClean = true;
if (!gitClean) console.log('Git is dirty because of:\n' + gitCleanString);
console.log(`version is ${versionTag || commitHash}${gitClean ? '' : '-dirty'}`);

View File

@@ -0,0 +1,13 @@
diff --git a/gui/src-tauri/src/main.rs b/gui/src-tauri/src/main.rs
index 8191f0ed..01e764d8 100644
--- a/gui/src-tauri/src/main.rs
+++ b/gui/src-tauri/src/main.rs
@@ -188,7 +188,7 @@ fn setup_webview2() -> Result<()> {
fn check_environment_variables() {
use itertools::Itertools;
- const ENVS_TO_CHECK: &[&str] = &["_JAVA_OPTIONS", "JAVA_TOOL_OPTIONS"];
+ const ENVS_TO_CHECK: &[&str] = &["_JAVA_OPTIONS"];
let checked_envs = ENVS_TO_CHECK
.into_iter()
.filter_map(|e| {

View File

@@ -0,0 +1,152 @@
{
lib,
fetchFromGitHub,
stdenv,
replaceVars,
makeWrapper,
slimevr-server,
nodejs,
pnpm_9,
rustPlatform,
cargo-tauri,
wrapGAppsHook3,
pkg-config,
openssl,
glib-networking,
webkitgtk_4_1,
gst_all_1,
libayatana-appindicator,
udevCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "slimevr";
version = "0.16.3";
src = fetchFromGitHub {
owner = "SlimeVR";
repo = "SlimeVR-Server";
tag = "v${version}";
hash = "sha256-RYHt0njzzom1wrHTP/7ch/D+YZcixqOeLMcfsGi+Kg8=";
# solarxr
fetchSubmodules = true;
};
buildAndTestSubdir = "gui/src-tauri";
cargoHash = "sha256-w2z+EQqkVGLmXQS+AzeJwkGG4ovpz9+ovmLOcUks734=";
pnpmDeps = pnpm_9.fetchDeps {
pname = "${pname}-pnpm-deps";
inherit version src;
fetcherVersion = 1;
hash = "sha256-b0oCOjxrUQqWmUR6IzTEO75pvJZB7MQD14DNbQm95sA=";
};
nativeBuildInputs = [
nodejs
pnpm_9.configHook
cargo-tauri.hook
pkg-config
wrapGAppsHook3
makeWrapper
udevCheckHook
];
buildInputs = [
openssl
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
]
++ lib.optionals stdenv.hostPlatform.isLinux [
glib-networking
libayatana-appindicator
webkitgtk_4_1
];
patches = [
# Upstream code uses Git to find the program version.
(replaceVars ./gui-no-git.patch {
version = src.rev;
})
# By default, SlimeVR will give a big warning about our `JAVA_TOOL_OPTIONS` changes.
./no-java-tool-options-warning.patch
];
postPatch = ''
# Tauri bundler expects slimevr.jar to exist.
mkdir -p server/desktop/build/libs
touch server/desktop/build/libs/slimevr.jar
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
# Both libappindicator-rs and SlimeVR need to know where Nix's appindicator lib is.
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
substituteInPlace gui/src-tauri/src/tray.rs \
--replace-fail "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
'';
# solarxr needs to be installed after compiling its Typescript files. This isn't
# done the first time, because `pnpm_9.configHook` ignores `package.json` scripts.
preBuild = ''
pnpm --filter solarxr-protocol build
'';
doCheck = false; # No tests
doInstallCheck = true; # Check udev
# Get rid of placeholder slimevr.jar
postInstall = ''
rm $out/share/slimevr/slimevr.jar
rm -d $out/share/slimevr
install -Dm644 -t $out/lib/udev/rules.d/ gui/src-tauri/69-slimevr-devices.rules
'';
# `JAVA_HOME`, `JAVA_TOOL_OPTIONS`, and `--launch-from-path` are so the GUI can
# launch the server.
postFixup = ''
wrapProgram "$out/bin/slimevr" \
--set JAVA_HOME "${slimevr-server.passthru.java.home}" \
--set JAVA_TOOL_OPTIONS "${slimevr-server.passthru.javaOptions}" \
--add-flags "--launch-from-path ${slimevr-server}/share/slimevr"
'';
passthru.updateScript = ./update.sh;
meta = {
homepage = "https://slimevr.dev";
description = "App for facilitating full-body tracking in virtual reality";
longDescription = ''
App for SlimeVR ecosystem. It orchestrates communication between multiple sensors and integrations, like SteamVR.
Sensors implementations:
- [SlimeVR Tracker for ESP](https://github.com/SlimeVR/SlimeVR-Tracker-ESP) - ESP microcontrollers and multiple IMUs are supported
- [owoTrack Mobile App](https://github.com/abb128/owoTrackVRSyncMobile) - use phones as trackers (limited functionality and compatibility)
- [SlimeVR Wrangler](https://github.com/carl-anders/slimevr-wrangler) - use Nintendo Switch Joycon controllers as trackers
Integrations:
- Use [SlimeVR OpenVR Driver](https://github.com/SlimeVR/SlimeVR-OpenVR-Driver) as a driver for SteamVR.
- Use built-in OSC Trackers support for FBT integration with VRChat, PCVR or Standalone.
- Use built-in VMC support for sending and receiving tracking data to and from other apps such as VSeeFace.
- Export recordings as .BVH files to integrate motion capture data into 3d applications such as Blender.
More at https://docs.slimevr.dev/tools/index.html.
'';
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [
gale-username
imurx
];
platforms = with lib.platforms; darwin ++ linux;
broken = stdenv.hostPlatform.isDarwin;
mainProgram = "slimevr";
};
}

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix-update
nix-update slimevr
$(nix-build -A slimevr-server.mitmCache.updateScript)

View File

@@ -0,0 +1,187 @@
{
faad2,
fetchFromGitHub,
flac,
lame,
lib,
makeWrapper,
monkeysAudio,
nixosTests,
perlPackages,
sox,
stdenv,
wavpack,
zlib,
enableUnfreeFirmware ? false,
}:
let
binPath = lib.makeBinPath (
[
lame
flac
faad2
sox
wavpack
]
++ (lib.optional stdenv.hostPlatform.isLinux monkeysAudio)
);
libPath = lib.makeLibraryPath [
zlib
stdenv.cc.cc
];
in
perlPackages.buildPerlPackage rec {
pname = "slimserver";
version = "9.0.3";
src = fetchFromGitHub {
owner = "LMS-Community";
repo = "slimserver";
tag = version;
hash = "sha256-Yc/XBINSX1JN7lJn4fin4qcTUSF8Bg+FbFe23KlYkfs=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs =
with perlPackages;
[
AnyEvent
ArchiveZip
AsyncUtil
AudioScan
CarpAssert
CarpClan
CGI
ClassAccessor
ClassAccessorChained
ClassC3
# ClassC3Componentised # Error: DBIx::Class::Row::throw_exception(): DBIx::Class::Relationship::BelongsTo::belongs_to(): Can't infer join condition for track
ClassDataInheritable
ClassInspector
ClassISA
ClassMember
ClassSingleton
ClassVirtual
ClassXSAccessor
CompressRawZlib
CryptOpenSSLRSA
DataDump
DataPage
DataURIEncode
DBDSQLite
DBI
# DBIxClass # https://github.com/LMS-Community/slimserver/issues/138
DigestSHA1
EncodeDetect
EV
ExporterLite
FileBOM
FileCopyRecursive
# FileNext # https://github.com/LMS-Community/slimserver/pull/1140
FileReadBackwards
FileSlurp
FileWhich
HTMLParser
HTTPCookies
HTTPDaemon
HTTPMessage
ImageScale
IOAIO
IOInterface
IOSocketSSL
IOString
JSONXS
JSONXSVersionOneAndTwo
# LogLog4perl # Internal error: Root Logger not initialized.
LWP
LWPProtocolHttps
MP3CutGapless
NetHTTP
NetHTTPSNB
PathClass
ProcBackground
# SQLAbstract # DBI Exception: DBD::SQLite::db prepare_cached failed: no such function: ARRAY
SQLAbstractLimit
SubName
TemplateToolkit
TextUnidecode
TieCacheLRU
TieCacheLRUExpires
TieRegexpHash
TimeDate
URI
URIFind
UUIDTiny
XMLParser
XMLSimple
YAMLLibYAML
]
# ++ (lib.optional stdenv.hostPlatform.isDarwin perlPackages.MacFSEvents)
++ (lib.optional stdenv.hostPlatform.isLinux perlPackages.LinuxInotify2);
prePatch = ''
# remove vendored binaries
rm -rf Bin
# remove most vendored modules, keeping necessary ones
mkdir -p CPAN_used/Class/C3/ CPAN_used/SQL/ CPAN_used/File/
rm -r CPAN/SQL/Abstract/Limit.pm
cp -rv CPAN/Class/C3/Componentised.pm CPAN_used/Class/C3/
cp -rv CPAN/DBIx CPAN_used/
cp -rv CPAN/File/Next.pm CPAN_used/File/
cp -rv CPAN/Log CPAN_used/
cp -rv CPAN/SQL/* CPAN_used/SQL/
rm -r CPAN
mv CPAN_used CPAN
# another set of vendored/modified modules exist in lib, more selectively cleaned for now
rm -rf lib/Audio
${lib.optionalString (!enableUnfreeFirmware) ''
# remove unfree firmware
rm -rf Firmware
''}
touch Makefile.PL
'';
doCheck = false;
installPhase = ''
cp -r . $out
wrapProgram $out/slimserver.pl --prefix LD_LIBRARY_PATH : "${libPath}" --prefix PATH : "${binPath}"
chmod +x $out/scanner.pl
wrapProgram $out/scanner.pl --prefix LD_LIBRARY_PATH : "${libPath}" --prefix PATH : "${binPath}"
mkdir $out/bin
ln -s $out/slimserver.pl $out/bin/slimserver
'';
outputs = [ "out" ];
passthru = {
tests = {
inherit (nixosTests) slimserver;
};
updateScript = ./update.nu;
};
meta = with lib; {
homepage = "https://lyrion.org/";
changelog = "https://lyrion.org/getting-started/changelog-lms${lib.versions.major version}";
description = "Lyrion Music Server (formerly Logitech Media Server) is open-source server software which controls a wide range of Squeezebox audio players";
# the firmware is not under a free license, so we do not include firmware in the default package
# https://github.com/LMS-Community/slimserver/blob/public/8.3/License.txt
license = if enableUnfreeFirmware then licenses.unfree else licenses.gpl2Only;
mainProgram = "slimserver";
maintainers = with maintainers; [
adamcstephens
jecaro
];
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,14 @@
#!/usr/bin/env nix-shell
#!nix-shell -i nu -p nushell common-updater-scripts
# get latest tag, but drop versions 10.0 tags since they are 10+ years old
let latest_tag = list-git-tags --url=https://github.com/LMS-Community/slimserver | lines | find --invert 10.0 | sort --natural | last
let current_version = nix eval --raw -f default.nix slimserver | str trim
if $latest_tag != $current_version {
update-source-version slimserver $latest_tag $"--file=(pwd)/pkgs/by-name/sl/slimserver/package.nix"
{before: $current_version, after: $latest_tag}
} else {
"No new version"
}

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "slingshot";
version = "0.3.0";
src = fetchFromGitHub {
owner = "caio-ishikawa";
repo = "slingshot";
rev = "v${version}";
hash = "sha256-XI6uf54sEJ0htfY43aF8/X1/OF9m6peHUGDS+2nK3xA=";
};
cargoHash = "sha256-Xf5lSwnD6ChpHaM7RQ/eti40iRZrNPpBsUn2QRzxecg=";
meta = with lib; {
description = "Lightweight command line tool to quickly navigate across folders";
homepage = "https://github.com/caio-ishikawa/slingshot";
changelog = "https://github.com/caio-ishikawa/slingshot/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "slingshot";
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
rustPlatform,
fetchCrate,
pkg-config,
cmake,
fontconfig,
libGL,
xorg,
libxkbcommon,
wayland,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "slint-lsp";
version = "1.13.1";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-XEs7zJWocRZgVPPDM/IxOOwE7ofh+b7A/TJrQw/mMOo=";
};
cargoHash = "sha256-DAoqfnis95oEPBgYeOdR3zUVdoKbay780iJ6zVkxdDU=";
rpathLibs = [
fontconfig
libGL
xorg.libxcb
xorg.libX11
xorg.libXcursor
xorg.libXi
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libxkbcommon
wayland
];
nativeBuildInputs = [
cmake
pkg-config
fontconfig
];
buildInputs = finalAttrs.rpathLibs ++ [ xorg.libxcb.dev ];
# Tests requires `i_slint_backend_testing` which is only a dev dependency
doCheck = false;
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf --set-rpath ${lib.makeLibraryPath finalAttrs.rpathLibs} $out/bin/slint-lsp
'';
dontPatchELF = true;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Language Server Protocol (LSP) for Slint UI language";
mainProgram = "slint-lsp";
homepage = "https://slint-ui.com/";
downloadPage = "https://github.com/slint-ui/slint/";
changelog = "https://github.com/slint-ui/slint/blob/v${finalAttrs.version}/CHANGELOG.md";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ xgroleau ];
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
rustPlatform,
fetchCrate,
qt6,
libGL,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "slint-viewer";
version = "1.13.1";
src = fetchCrate {
inherit (finalAttrs) pname version;
hash = "sha256-I3iwnxft0z6kXdlHIaZUqufqJP3XrF2h+l5Y4EgLPr0=";
};
cargoHash = "sha256-lxxiNa1xqZDtSx19h1MxGOhK/N14fv5k+miaaNpskFc=";
buildInputs = [
qt6.qtbase
qt6.qtsvg
libGL
];
nativeBuildInputs = [ qt6.wrapQtAppsHook ];
# There are no tests
doCheck = false;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Viewer for .slint files from the Slint Project";
mainProgram = "slint-viewer";
homepage = "https://crates.io/crates/slint-viewer";
changelog = "https://github.com/slint-ui/slint/blob/master/CHANGELOG.md";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = with lib.maintainers; [ dtomvan ];
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage rec {
pname = "slippy";
version = "0.1.1";
src = fetchFromGitHub {
owner = "axodotdev";
repo = "slippy";
rev = "v${version}";
hash = "sha256-7Uvo5+saxwTMQjfDliyOYC6j6LbpMf/FiONfX38xepI=";
};
cargoHash = "sha256-RGSc+jy2i97QZGfafe3M25bunBmCYAJ0UW3dAnvl5gs=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
meta = with lib; {
description = "Markdown slideshows in Rust";
homepage = "https://github.com/axodotdev/slippy";
changelog = "https://github.com/axodotdev/slippy/releases/tag/${src.rev}";
license = with licenses; [
asl20
mit
];
maintainers = with maintainers; [ figsoda ];
mainProgram = "slippy";
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
ocamlPackages,
fetchFromGitHub,
versionCheckHook,
nixosTests,
nix-update-script,
}:
ocamlPackages.buildDunePackage rec {
pname = "slipshow";
version = "0.6.0";
src = fetchFromGitHub {
owner = "panglesd";
repo = "slipshow";
tag = "v${version}";
hash = "sha256-cmBq9RYjvl355+tV+Nf7XmDzgbOqusCjVrqoC34R5CI=";
};
postPatch = ''
substituteInPlace ./src/cli/main.ml \
--replace-fail '%%VERSION%%' '${version}'
'';
nativeBuildInputs = with ocamlPackages; [
js_of_ocaml
];
buildInputs = with ocamlPackages; [
base64
bos
cmdliner
dream
fmt
fpath
irmin-watcher
js_of_ocaml-lwt
logs
lwt
magic-mime
ppx_blob
ppx_sexp_value
sexplib
];
doCheck = true;
nativeCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
tests = { inherit (nixosTests) slipshow; };
updateScript = nix-update-script { };
};
meta = {
description = "Engine for displaying slips, the next-gen version of slides";
homepage = "https://slipshow.readthedocs.io/en/latest/index.html";
license = lib.licenses.gpl3Only;
downloadPage = "https://github.com/panglesd/slipshow";
maintainers = [ lib.maintainers.ethancedwards8 ];
teams = [ lib.teams.ngi ];
mainProgram = "slipshow";
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
fetchFromGitHub,
makeWrapper,
maven,
jdk8,
}:
let
jdk = jdk8;
in
maven.buildMavenPackage rec {
pname = "slipstream";
version = "1.9.1";
src = fetchFromGitHub {
owner = "Vhati";
repo = "Slipstream-Mod-Manager";
rev = "v${version}";
hash = "sha256-F+o94Oh9qxVdfgwdmyOv+WZl1BjQuzhQWaVrAgScgIU=";
};
mvnJdk = jdk;
mvnHash = "sha256-woOSkF5TuzaJ84EndryMoXTMbbK/V/BShM1k+WB8D/c=";
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/share/java
install -Dm644 target/ftl-mod-manager-${version}.jar $out/share/java
install -Dm644 target/modman.jar $out/share/java
# slipstream is very finniky about having specific
# folders at startup, so wrapper creates them for it.
# this is because slipstream expects to be started from
# archive it comes from, but we can't do that since
# we need the mods directory to be writable.
# see: https://github.com/Vhati/Slipstream-Mod-Manager/blob/85cad4ffbef8583d908b189204d7d22a26be43f8/src/main/java/net/vhati/modmanager/cli/SlipstreamCLI.java#L105
makeWrapper ${jdk}/bin/java $out/bin/${pname} \
--run '_dir="''${XDG_DATA_HOME:-$HOME/.local/share}/slipstream"' \
--run 'mkdir -p $_dir/{mods,backup}' \
--run 'cd $_dir' \
--append-flags "-jar $out/share/java/modman.jar"
runHook postInstall
'';
meta = with lib; {
description = "Mod manager for FTL: Faster Than Light";
homepage = "https://github.com/Vhati/Slipstream-Mod-Manager";
license = licenses.gpl2Only;
maintainers = with maintainers; [ mib ];
mainProgram = "slipstream";
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
glib,
libcap,
libseccomp,
libslirp,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "slirp4netns";
version = "1.3.3";
src = fetchFromGitHub {
owner = "rootless-containers";
repo = "slirp4netns";
rev = "v${version}";
sha256 = "sha256-dPhUr9GdujTpUsnfvZDp8eOBQwlzqwtwziII2QWD4JA=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
glib
libcap
libseccomp
libslirp
];
enableParallelBuilding = true;
strictDeps = true;
passthru.tests = { inherit (nixosTests) podman; };
meta = with lib; {
homepage = "https://github.com/rootless-containers/slirp4netns";
description = "User-mode networking for unprivileged network namespaces";
license = licenses.gpl2Only;
maintainers = with maintainers; [ orivej ];
teams = [ teams.podman ];
platforms = platforms.linux;
mainProgram = "slirp4netns";
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchzip,
writeText,
xorgproto,
libX11,
libXext,
libXrandr,
libxcrypt,
config,
conf ? config.slock.conf or null,
patches ? config.slock.patches or [ ],
extraLibs ? config.slock.extraLibs or [ ],
# update script dependencies
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slock";
version = "1.6";
src = fetchzip {
url = "https://dl.suckless.org/tools/slock-${finalAttrs.version}.tar.gz";
hash = "sha256-EIzLEIGd631dwYoAe7PXNoki9iaQPP3Y0S5H80aY+l8=";
};
buildInputs = [
xorgproto
libX11
libXext
libXrandr
libxcrypt
]
++ extraLibs;
installFlags = [ "PREFIX=$(out)" ];
postPatch = "sed -i '/chmod u+s/d' Makefile";
preBuild = lib.optionalString (conf != null) ''
cp ${writeText "config.def.h" conf} config.def.h
'';
inherit patches;
makeFlags = [ "CC:=$(CC)" ];
passthru.updateScript = gitUpdater {
url = "git://git.suckless.org/slock";
};
meta = {
homepage = "https://tools.suckless.org/slock";
description = "Simple X display locker";
mainProgram = "slock";
longDescription = ''
Simple X display locker. This is the simplest X screen locker.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
qusic
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
glew,
glm,
libGLU,
libGL,
libX11,
libXext,
libXrender,
icu74,
libSM,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slop";
version = "7.7";
src = fetchFromGitHub {
owner = "naelstrof";
repo = "slop";
tag = "v${finalAttrs.version}";
hash = "sha256-oUvzkIGrUTLVLR9Jf//Wh7AmnaNS2JLC3vXWg+w5W6g=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
glew
glm
libGLU
libGL
libX11
libXext
libXrender
icu74
libSM
];
meta = {
inherit (finalAttrs.src.meta) homepage;
description = "Queries for a selection from the user and prints the region to stdout";
platforms = lib.platforms.linux;
license = lib.licenses.gpl3Plus;
maintainers = [ ];
mainProgram = "slop";
};
})

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchurl,
unzip,
makeBinaryWrapper,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "sloth-app";
version = "3.4";
src = fetchurl {
url = "https://github.com/sveinbjornt/Sloth/releases/download/${finalAttrs.version}/sloth-${finalAttrs.version}.zip";
hash = "sha256-K8DweBFAILEQyqri6NO+p5qRam+BHjIk1tl43gcseNs=";
};
dontUnpack = true;
nativeBuildInputs = [
unzip
makeBinaryWrapper
];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications $out/bin
unzip -d $out/Applications $src
makeWrapper $out/Applications/Sloth.app/Contents/MacOS/Sloth $out/bin/Sloth
runHook postInstall
'';
meta = {
description = "Mac app that shows all open files, directories, sockets, pipes and devices";
homepage = "https://sveinbjorn.org/sloth";
license = lib.licenses.bsd3;
mainProgram = "Sloth";
maintainers = with lib.maintainers; [
emilytrau
iedame
];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,30 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "sloth";
version = "0.13.0";
src = fetchFromGitHub {
owner = "slok";
repo = "sloth";
rev = "v${version}";
hash = "sha256-rgDTLbNhs9CD+VHEo2+eLGh9amhWg/TksbXTvxvp7j8=";
};
vendorHash = "sha256-8p6NYgIK5Gc+gEkNkn1nL4t605xzhF3nS8UYX+AT/Ag=";
subPackages = [ "cmd/sloth" ];
meta = {
description = "Easy and simple Prometheus SLO (service level objectives) generator";
homepage = "https://sloth.dev/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ nrhtr ];
platforms = lib.platforms.unix;
mainProgram = "sloth";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchFromGitHub,
openssl,
}:
stdenv.mkDerivation rec {
pname = "slowhttptest";
version = "1.9.0";
src = fetchFromGitHub {
owner = "shekyan";
repo = "slowhttptest";
rev = "v${version}";
sha256 = "sha256-rIvd3LykVAbDXtFWZ1EQ+QKeALzqwK6pq7In0BsCOFo=";
};
buildInputs = [ openssl ];
meta = with lib; {
description = "Application Layer DoS attack simulator";
homepage = "https://github.com/shekyan/slowhttptest";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ fab ];
mainProgram = "slowhttptest";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "slowlorust";
version = "0.1.1";
src = fetchFromGitHub {
owner = "MJVL";
repo = "slowlorust";
tag = version;
hash = "sha256-c4NWkQ/QvlUo1YoV2s7rWB6wQskAP5Qp1WVM23wvV3c=";
};
cargoHash = "sha256-L0N7SVUzdTzDXPaS/da4kCKNG2lwS8Mqk1HET2LqSvY=";
postPatch = ''
# https://github.com/MJVL/slowlorust/issues/2
substituteInPlace src/main.rs \
--replace-fail 'version = "1.0"' 'version = "${version}"'
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = "--version";
meta = {
description = "Lightweight slowloris (HTTP DoS) tool";
homepage = "https://github.com/MJVL/slowlorust";
changelog = "https://github.com/MJVL/slowlorust/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "slowlorust";
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
fetchFromGitHub,
buildGoModule,
}:
buildGoModule rec {
pname = "slsa-verifier";
version = "2.7.1";
src = fetchFromGitHub {
owner = "slsa-framework";
repo = "slsa-verifier";
rev = "v${version}";
hash = "sha256-9C6MQwOxcRlhkWslHGr1mR6i2c32HMu7wRmozI4dRPI=";
};
vendorHash = "sha256-L+QoXVxj6bNKkH5vcr+2UsZa+NC+Gn+Nno5vW2YEARw=";
env.CGO_ENABLED = 0;
subPackages = [ "cli/slsa-verifier" ];
tags = [ "netgo" ];
ldflags = [
"-s"
"-w"
"-X sigs.k8s.io/release-utils/version.gitVersion=${version}"
];
doCheck = false;
meta = {
homepage = "https://github.com/slsa-framework/slsa-verifier";
changelog = "https://github.com/slsa-framework/slsa-verifier/releases/tag/v${version}";
description = "Verify provenance from SLSA compliant builders";
mainProgram = "slsa-verifier";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
developer-guy
mlieberman85
];
};
}

132
pkgs/by-name/sl/slsk-batchdl/deps.json generated Normal file
View File

@@ -0,0 +1,132 @@
[
{
"pname": "AngleSharp",
"version": "1.2.0",
"hash": "sha256-l8+Var9o773VL6Ybih3boaFf9sYjS7eqtLGd8DCIPsk="
},
{
"pname": "EmbedIO",
"version": "3.5.2",
"hash": "sha256-e6GfVHXxYeUw3ntCrHokNoAS6mXArO7+vdMeUFnsSo8="
},
{
"pname": "Goblinfactory.ProgressBar",
"version": "1.0.0",
"hash": "sha256-tV3Fw792zfYhB2dN97VKXBwS5eypqKExgAJy+bcDo8I="
},
{
"pname": "Google.Apis",
"version": "1.69.0",
"hash": "sha256-/9JN0CZIFZnmGS69ki38RlNzQiwp4yO0MFDeRk1slsg="
},
{
"pname": "Google.Apis.Auth",
"version": "1.69.0",
"hash": "sha256-T6n3hc+KpgHNqQQeJLOmgHQWkjBvnhIob5giHabREV8="
},
{
"pname": "Google.Apis.Core",
"version": "1.69.0",
"hash": "sha256-IW1AOY8o6hHkrc/tINsS/VCOUrOSoXb6OCSEF6gamkc="
},
{
"pname": "Google.Apis.YouTube.v3",
"version": "1.69.0.3680",
"hash": "sha256-3aNScBqmchnDkLejK5HYHiLVVDexrFUtZ6xe8cGP28M="
},
{
"pname": "HtmlAgilityPack",
"version": "1.11.72",
"hash": "sha256-MRt7yj6+/ORmr2WBERpQ+1gMRzIaPFKddHoB4zZmv2k="
},
{
"pname": "Microsoft.Bcl.AsyncInterfaces",
"version": "9.0.1",
"hash": "sha256-A3W2Hvhlf1ODx1NYWHwUyziZOGMaDPvXHZ/ubgNLYJA="
},
{
"pname": "Microsoft.CSharp",
"version": "4.7.0",
"hash": "sha256-Enknv2RsFF68lEPdrf5M+BpV1kHoLTVRApKUwuk/pj0="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.3",
"hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc="
},
{
"pname": "SmallestCSVParser",
"version": "1.1.1",
"hash": "sha256-64E87w+4FcQtYsFIOMGGmYmjXVGBwsBqgLVb7p0wc04="
},
{
"pname": "Soulseek",
"version": "7.1.2",
"hash": "sha256-yel9mxRf1idEQssM7n4SIVQPMQDMDmyvfL5owllqgf0="
},
{
"pname": "SpotifyAPI.Web",
"version": "7.2.1",
"hash": "sha256-gbTLJaj7DSXZQlo0xpegZ8HLruMe6WmDyD8+l6YE3hg="
},
{
"pname": "SpotifyAPI.Web.Auth",
"version": "7.2.1",
"hash": "sha256-uzpyPlXNCuSHrcK4SKH0ydY2HlDKXU51W5ahk2Oqu98="
},
{
"pname": "System.CodeDom",
"version": "7.0.0",
"hash": "sha256-7IPt39cY+0j0ZcRr/J45xPtEjnSXdUJ/5ai3ebaYQiE="
},
{
"pname": "System.IO.Pipelines",
"version": "9.0.1",
"hash": "sha256-CnmDanknCGbNnoDjgZw62M/Grg8IMTJDa8x3P07UR2A="
},
{
"pname": "System.Management",
"version": "7.0.2",
"hash": "sha256-bJ21ILQfbHb8mX2wnVh7WP/Ip7gdVPIw+BamQuifTVY="
},
{
"pname": "System.Memory",
"version": "4.6.0",
"hash": "sha256-OhAEKzUM6eEaH99DcGaMz2pFLG/q/N4KVWqqiBYUOFo="
},
{
"pname": "System.Text.Encodings.Web",
"version": "9.0.1",
"hash": "sha256-iuAVcTiiZQLCZjDfDqdLLPHqZdZqvFabwLFHiVYdRJo="
},
{
"pname": "System.Text.Json",
"version": "9.0.1",
"hash": "sha256-2dqE+Mx5eJZ8db74ofUiUXHOSxDCmXw5n9VC9w4fUr0="
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.6.0",
"hash": "sha256-OwIB0dpcdnyfvTUUj6gQfKW2XF2pWsQhykwM1HNCHqY="
},
{
"pname": "System.ValueTuple",
"version": "4.5.0",
"hash": "sha256-niH6l2fU52vAzuBlwdQMw0OEoRS/7E1w5smBFoqSaAI="
},
{
"pname": "TagLibSharp",
"version": "2.3.0",
"hash": "sha256-PD9bVZiPaeC8hNx2D+uDUf701cCaMi2IRi5oPTNN+/w="
},
{
"pname": "Unosquare.Swan.Lite",
"version": "3.1.0",
"hash": "sha256-PL8N3CqIz/wku8/mkRMC3X868Byv47C20/rBLBhkS3o="
},
{
"pname": "YoutubeExplode",
"version": "6.5.4",
"hash": "sha256-5sexIiBj5XP9rP5DA0NQ+vHJ9lpjwp00EvVux901WLc="
}
]

View File

@@ -0,0 +1,58 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
nix-update-script,
}:
buildDotnetModule (finalAttrs: {
pname = "slsk-batchdl";
version = "2.5.0";
src = fetchFromGitHub {
owner = "fiso64";
repo = "slsk-batchdl";
tag = "v${finalAttrs.version}";
hash = "sha256-ZgNjNdk03jIc/REJMmuc5rZLbibLoy94DJxh7jAJY7g=";
};
postPatch = ''
# .NET 6 is EOL, .NET 8 works fine modulo the trimming flag.
# See: https://github.com/fiso64/slsk-batchdl/issues/112
substituteInPlace \
slsk-batchdl/slsk-batchdl.csproj \
slsk-batchdl.Tests/slsk-batchdl.Tests.csproj \
--replace-fail "<TargetFramework>net6.0</TargetFramework>" "<TargetFramework>net8.0</TargetFramework>"
'';
projectFile = "slsk-batchdl/slsk-batchdl.csproj";
# Tests fail to build.
# See: https://github.com/fiso64/slsk-batchdl/issues/111
# testProjectFile = "slsk-batchdl.Tests/slsk-batchdl.Tests.csproj";
dotnet-sdk = dotnetCorePackages.sdk_8_0;
nugetDeps = ./deps.json;
executables = [ "sldl" ];
dotnetFlags = [
"--property:PublishSingleFile=true"
# Note: This breaks Spotify authentication!
# See: https://github.com/fiso64/slsk-batchdl/issues/112
# "--property:PublishTrimmed=true"
];
selfContainedBuild = true;
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/fiso64/slsk-batchdl";
description = "Advanced download tool for Soulseek";
license = lib.licenses.gpl3Only;
maintainers = [
lib.maintainers._9999years
];
mainProgram = "sldl";
};
})

1602
pkgs/by-name/sl/slskd/deps.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,88 @@
{
lib,
buildDotnetModule,
buildPackages,
dotnetCorePackages,
fetchFromGitHub,
fetchNpmDeps,
mono,
nodejs_20,
slskd,
testers,
nix-update-script,
}:
let
nodejs = nodejs_20;
# https://github.com/NixOS/nixpkgs/blob/d88947e91716390bdbefccdf16f7bebcc41436eb/pkgs/build-support/node/build-npm-package/default.nix#L62
npmHooks = buildPackages.npmHooks.override { inherit nodejs; };
in
buildDotnetModule rec {
pname = "slskd";
version = "0.23.2";
src = fetchFromGitHub {
owner = "slskd";
repo = "slskd";
tag = version;
hash = "sha256-y/qgx4tC7QGQTbBqhvp/TUalW1MfKYzvvSVgyNvKMME=";
};
nativeBuildInputs = [
nodejs
npmHooks.npmConfigHook
];
runtimeDeps = [ mono ];
npmRoot = "src/web";
npmDeps = fetchNpmDeps {
name = "${pname}-${version}-npm-deps";
inherit src;
sourceRoot = "${src.name}/${npmRoot}";
hash = "sha256-xFRuyCMPR+NT3ogmqKK0cmjdv6v/90deP50Y5vIL20w=";
};
projectFile = "slskd.sln";
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
testProjectFile = "tests/slskd.Tests.Unit/slskd.Tests.Unit.csproj";
doCheck = true;
disabledTests = [
# Random failures on OfBorg, cause unknown
"slskd.Tests.Unit.Transfers.Uploads.UploadGovernorTests+ReturnBytes.Returns_Bytes_To_Bucket"
];
postBuild = ''
pushd "$npmRoot"
npm run build --legacy-peer-deps
popd
'';
postInstall = ''
rm -r $out/lib/slskd/wwwroot
mv "$npmRoot"/build $out/lib/slskd/wwwroot
'';
passthru = {
tests.version = testers.testVersion { package = slskd; };
updateScript = nix-update-script { };
};
meta = {
description = "Modern client-server application for the Soulseek file sharing network";
homepage = "https://github.com/slskd/slskd";
changelog = "https://github.com/slskd/slskd/releases/tag/${version}";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [
ppom
melvyn2
getchoo
];
mainProgram = "slskd";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,23 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "slsnif";
version = "0.4.4";
src = fetchurl {
url = "mirror://sourceforge/slsnif/slsnif-${version}.tar.gz";
sha256 = "0gn8c5hj8m3sywpwdgn6w5xl4rzsvg0z7d2w8dxi6p152j5b0pii";
};
meta = {
description = "Serial line sniffer";
homepage = "http://slsnif.sourceforge.net/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
mainProgram = "slsnif";
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchzip,
pkg-config,
writeText,
libX11,
libxcb,
libXau,
libXdmcp,
config,
conf ? config.slstatus.conf or null,
patches ? config.slstatus.patches or [ ],
extraLibs ? config.slstatus.extraLibs or [ ],
# update script dependencies
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slstatus";
version = "1.1";
src = fetchzip {
url = "https://dl.suckless.org/tools/slstatus-${finalAttrs.version}.tar.gz";
hash = "sha256-MRDovZpQsvnLEvsbJNBzprkzQQ4nIs1T9BLT+tSGta8=";
};
preBuild =
let
configFile =
if lib.isDerivation conf || builtins.isPath conf then conf else writeText "config.def.h" conf;
in
''
${lib.optionalString (conf != null) "cp ${configFile} config.def.h"}
makeFlagsArray+=(LDLIBS="-lX11 -lxcb -lXau -lXdmcp" CC=$CC)
'';
inherit patches;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libX11
libxcb
libXau
libXdmcp
]
++ extraLibs;
installFlags = [ "PREFIX=$(out)" ];
passthru.updateScript = gitUpdater { };
meta = {
homepage = "https://tools.suckless.org/slstatus/";
description = "Status monitor for window managers that use WM_NAME like dwm";
license = lib.licenses.isc;
maintainers = with lib.maintainers; [
oxzi
qusic
];
platforms = lib.platforms.linux;
mainProgram = "slstatus";
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "slumber";
version = "4.0.1";
src = fetchFromGitHub {
owner = "LucasPickering";
repo = "slumber";
tag = "v${version}";
hash = "sha256-Xr4jAQ3G5El9FU6qOJJARjkZmTZly8pb//ElQizOHSg=";
};
cargoHash = "sha256-Di3Kqwa63AWwZE1VOal+mqmYe/nzPFqis1MnawW9uZo=";
meta = {
description = "Terminal-based HTTP/REST client";
homepage = "https://slumber.lucaspickering.me";
changelog = "https://github.com/LucasPickering/slumber/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
mainProgram = "slumber";
maintainers = with lib.maintainers; [ javaes ];
};
}

View File

@@ -0,0 +1,37 @@
{
stdenv,
lib,
fetchFromGitHub,
pkg-config,
meson,
ncurses,
ninja,
}:
stdenv.mkDerivation rec {
pname = "slurm-nm";
version = "0.4.4";
src = fetchFromGitHub {
owner = "mattthias";
repo = "slurm";
rev = "upstream/${version}";
hash = "sha256-w77SIXFctMwwNw9cQm0HQaEaMs/5NXQjn1LpvkpCCB8=";
};
nativeBuildInputs = [
pkg-config
meson
ninja
];
buildInputs = [ ncurses ];
meta = with lib; {
description = "Generic network load monitor";
homepage = "https://github.com/mattthias/slurm";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ mikaelfangel ];
mainProgram = "slurm";
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/slurm-spank-stunnel.c b/slurm-spank-stunnel.c
index 81fb4fd..dbe69f6 100644
--- a/slurm-spank-stunnel.c
+++ b/slurm-spank-stunnel.c
@@ -278,7 +278,7 @@ int _stunnel_connect_nodes (char* nodes)
{
char* host;
- hostlist_t hlist;
+ hostlist_t *hlist;
// Connect to the first host in the list
hlist = slurm_hostlist_create(nodes);

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
slurm,
}:
stdenv.mkDerivation rec {
pname = "slurm-spank-stunnel";
version = "0.2.2";
src = fetchFromGitHub {
owner = "stanford-rc";
repo = "slurm-spank-stunnel";
rev = version;
sha256 = "15cpd49ccvzsmmr3gk8svm2nz461rvs4ybczckyf4yla0xzp06gj";
};
patches = [ ./hostlist.patch ];
buildPhase = ''
gcc -I${lib.getDev slurm}/include -shared -fPIC -o stunnel.so slurm-spank-stunnel.c
'';
installPhase = ''
mkdir -p $out/lib $out/etc/slurm/plugstack.conf.d
install -m 755 stunnel.so $out/lib
install -m 644 plugstack.conf $out/etc/slurm/plugstack.conf.d/stunnel.conf.example
'';
meta = with lib; {
homepage = "https://github.com/stanford-rc/slurm-spank-stunnel";
description = "Plugin for SLURM for SSH tunneling and port forwarding support";
platforms = platforms.linux;
license = licenses.gpl3Only;
maintainers = with maintainers; [ markuskowa ];
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/slurm-spank-x11-plug.c b/slurm-spank-x11-plug.c
index bef6c14..7cb77c4 100644
--- a/slurm-spank-x11-plug.c
+++ b/slurm-spank-x11-plug.c
@@ -608,7 +608,7 @@ int _connect_node (char* node,uint32_t jobid,uint32_t stepid)
int _x11_connect_nodes (char* nodes,uint32_t jobid,uint32_t stepid)
{
char* host;
- hostlist_t hlist;
+ hostlist_t *hlist;
int n=0;
int i;

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
slurm,
}:
stdenv.mkDerivation rec {
pname = "slurm-spank-x11";
version = "0.2.5";
src = fetchFromGitHub {
owner = "hautreux";
repo = "slurm-spank-x11";
rev = version;
sha256 = "1dmsr7whxcxwnlvl1x4s3bqr5cr6q5ssb28vqi67w5hj4sshisry";
};
patches = [ ./hostlist.patch ];
# Required for build with gcc-14
env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
buildPhase = ''
gcc -DX11_LIBEXEC_PROG="\"$out/bin/slurm-spank-x11\"" \
-g -o slurm-spank-x11 slurm-spank-x11.c
gcc -I${lib.getDev slurm}/include -DX11_LIBEXEC_PROG="\"$out/bin/slurm-spank-x11\"" -shared -fPIC \
-g -o x11.so slurm-spank-x11-plug.c
'';
installPhase = ''
mkdir -p $out/bin $out/lib
install -m 755 slurm-spank-x11 $out/bin
install -m 755 x11.so $out/lib
'';
meta = with lib; {
homepage = "https://github.com/hautreux/slurm-spank-x11";
description = "Plugin for SLURM to allow for interactive X11 sessions";
mainProgram = "slurm-spank-x11";
platforms = platforms.linux;
license = licenses.gpl3Only;
maintainers = with maintainers; [ markuskowa ];
};
}

View File

@@ -0,0 +1,159 @@
{
lib,
stdenv,
fetchFromGitHub,
runCommand,
config,
pkg-config,
libtool,
curl,
python3,
munge,
perl,
pam,
shadow,
coreutils,
dbus,
libbpf,
ncurses,
libmysqlclient,
lua,
hwloc,
numactl,
readline,
freeipmi,
xauth,
lz4,
rdma-core,
nixosTests,
pmix,
libjwt,
libyaml,
json_c,
http-parser,
# enable internal X11 support via libssh2
enableX11 ? true,
enableNVML ? config.cudaSupport,
nvml,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slurm";
version = "25.05.3.1";
# N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
# because the latter does not keep older releases.
src = fetchFromGitHub {
owner = "SchedMD";
repo = "slurm";
# The release tags use - instead of .
rev = "slurm-${builtins.replaceStrings [ "." ] [ "-" ] finalAttrs.version}";
hash = "sha256-W/q9eN4Ov3pxp2qyr3b7G4ayDaNtFUPQeAcOHCB23Q8=";
};
outputs = [
"out"
"dev"
];
prePatch = ''
substituteInPlace src/common/env.c \
--replace "/bin/echo" "${lib.getExe' coreutils "echo"}"
# Autoconf does not support split packages for pmix (libs and headers).
# Fix the path to the pmix libraries, so dlopen can find it.
substituteInPlace src/plugins/mpi/pmix/mpi_pmix.c \
--replace 'xstrfmtcat(full_path, "%s/", PMIXP_LIBPATH)' \
'xstrfmtcat(full_path, "${lib.getLib pmix}/lib/")'
''
+ (lib.optionalString enableX11 ''
substituteInPlace src/common/x11_util.c \
--replace '"/usr/bin/xauth"' '"${lib.getExe xauth}"'
'');
# nixos test fails to start slurmd with 'undefined symbol: slurm_job_preempt_mode'
# https://groups.google.com/forum/#!topic/slurm-devel/QHOajQ84_Es
# this doesn't fix tests completely at least makes slurmd to launch
hardeningDisable = [ "bindnow" ];
nativeBuildInputs = [
pkg-config
libtool
python3
perl
];
buildInputs = [
curl
python3
munge
pam
libmysqlclient
ncurses
lz4
rdma-core
lua
hwloc
numactl
readline
freeipmi
shadow.su
pmix
json_c
libjwt
libyaml
dbus
libbpf
http-parser
]
++ lib.optionals enableX11 [ xauth ]
++ lib.optionals enableNVML [
(runCommand "collect-nvml" { } ''
mkdir $out
ln -s ${lib.getDev nvml}/include $out/include
ln -s ${lib.getLib nvml}/lib/stubs $out/lib
'')
];
configureFlags = [
"--with-freeipmi=${freeipmi}"
"--with-http-parser=${http-parser}"
"--with-hwloc=${lib.getDev hwloc}"
"--with-json=${lib.getDev json_c}"
"--with-jwt=${libjwt}"
"--with-lz4=${lib.getDev lz4}"
"--with-munge=${munge}"
"--with-yaml=${lib.getDev libyaml}"
"--with-ofed=${lib.getDev rdma-core}"
"--sysconfdir=/etc/slurm"
"--with-pmix=${lib.getDev pmix}"
"--with-bpf=${libbpf}"
"--without-rpath" # Required for configure to pick up the right dlopen path
]
++ (lib.optional (!enableX11) "--disable-x11")
++ (lib.optional enableNVML "--with-nvml");
preConfigure = ''
patchShebangs ./doc/html/shtml2html.py
patchShebangs ./doc/man/man2html.py
'';
postInstall = ''
rm -f $out/lib/*.la $out/lib/slurm/*.la
'';
enableParallelBuilding = true;
passthru.tests.slurm = nixosTests.slurm;
meta = {
homepage = "http://www.schedmd.com/";
description = "Simple Linux Utility for Resource Management";
platforms = lib.platforms.linux;
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [
jagajaga
markuskowa
];
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
cairo,
libxkbcommon,
meson,
ninja,
pkg-config,
scdoc,
wayland,
wayland-protocols,
wayland-scanner,
buildDocs ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slurp";
version = "1.5.0";
src = fetchFromGitHub {
owner = "emersion";
repo = "slurp";
rev = "v${finalAttrs.version}";
hash = "sha256-2M8f3kN6tihwKlUCp2Qowv5xD6Ufb71AURXqwQShlXI=";
};
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
]
++ lib.optional buildDocs scdoc;
buildInputs = [
cairo
libxkbcommon
wayland
wayland-protocols
];
strictDeps = true;
mesonFlags = [ (lib.mesonEnable "man-pages" buildDocs) ];
meta = {
changelog = "https://github.com/emersion/slurp/releases/tag/v${finalAttrs.version}";
description = "Select a region in a Wayland compositor";
platforms = lib.platforms.linux;
homepage = "https://github.com/emersion/slurp";
license = lib.licenses.mit;
mainProgram = "slurp";
maintainers = with lib.maintainers; [ nickcao ];
};
})

View File

@@ -0,0 +1,47 @@
{
lib,
stdenvNoCC,
fetchzip,
makeWrapper,
wineWowPackages,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "slushload";
version = "3";
src = fetchzip {
url = "https://csdb.dk/getinternalfile.php/222989/slushload_v${finalAttrs.version}.zip";
hash = "sha256-xXcLaEsM+4IrAi96JyPRCdIhQ8jhf44/4E3Ba18mddE=";
stripRoot = false;
};
dontUnpack = true;
nativeBuildInputs = [
makeWrapper
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share}
makeWrapper ${wineWowPackages.base}/bin/wine $out/bin/slushload \
--set WINEDEBUG "-all" \
--run "export WINEPREFIX=''${XDG_DATA_HOME:-\$HOME/.local/share}/slushload" \
--add-flags $src/slushload_v3.exe
cp $src/huffmanloader.asm $out/share
cp $src/readme.txt $out/share
runHook postInstall
'';
meta = {
description = "Make turbo tape images from .prg files";
homepage = "https://csdb.dk/release/?id=212586";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
mainProgram = "slushload";
maintainers = with lib.maintainers; [ matthewcroughan ];
};
})

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromSourcehut,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "slweb";
version = "0.10.2";
src = fetchFromSourcehut {
owner = "~strahinja";
repo = "slweb";
rev = "v${finalAttrs.version}";
hash = "sha256-TS87rFmK6IZbyj+11Oi/lHepa3MDebYILVLLLAgNEdc=";
};
postPatch = ''
substituteInPlace config.mk \
--replace-fail "/usr/local" "$out"
'';
env = {
FALLBACKVER = finalAttrs.version;
};
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
meta = {
description = "Static website generator which aims at being simplistic";
homepage = "https://strahinja.srht.site/slweb/";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ GaetanLepage ];
mainProgram = "slweb";
};
})

View File

@@ -0,0 +1,54 @@
{
lib,
fetchFromGitHub,
flutter327,
runCommand,
yq,
sly,
_experimental-update-script-combinators,
gitUpdater,
}:
flutter327.buildFlutterApplication rec {
pname = "sly";
version = "1.0.0";
src = fetchFromGitHub {
owner = "kra-mo";
repo = "Sly";
tag = "v${version}";
hash = "sha256-pFTP+oDY3pCSgO26ZtqUR+puMJSFZAEdbM2AqmfkNX8=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
postInstall = ''
install -Dm0644 packaging/linux/page.kramo.Sly.svg $out/share/icons/hicolor/scalable/apps/page.kramo.Sly.svg
install -Dm0644 packaging/linux/page.kramo.Sly.desktop $out/share/applications/sly.desktop
'';
passthru = {
pubspecSource =
runCommand "pubspec.lock.json"
{
nativeBuildInputs = [ yq ];
inherit (sly) src;
}
''
cat $src/pubspec.lock | yq > $out
'';
updateScript = _experimental-update-script-combinators.sequence [
(gitUpdater { rev-prefix = "v"; })
(_experimental-update-script-combinators.copyAttrOutputToFile "sly.pubspecSource" ./pubspec.lock.json)
];
};
meta = {
description = "Friendly image editor";
homepage = "https://github.com/kra-mo/Sly";
mainProgram = "sly";
license = with lib.licenses; [ gpl3Plus ];
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,982 @@
{
"packages": {
"archive": {
"dependency": "transitive",
"description": {
"name": "archive",
"sha256": "08064924cbf0ab88280a0c3f60db9dd24fec693927e725ecb176f16c629d1cb8",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.1"
},
"args": {
"dependency": "transitive",
"description": {
"name": "args",
"sha256": "bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.6.0"
},
"async": {
"dependency": "transitive",
"description": {
"name": "async",
"sha256": "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.11.0"
},
"boolean_selector": {
"dependency": "transitive",
"description": {
"name": "boolean_selector",
"sha256": "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.1"
},
"characters": {
"dependency": "transitive",
"description": {
"name": "characters",
"sha256": "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.0"
},
"cli_util": {
"dependency": "transitive",
"description": {
"name": "cli_util",
"sha256": "ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.4.2"
},
"clock": {
"dependency": "transitive",
"description": {
"name": "clock",
"sha256": "cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.1"
},
"collection": {
"dependency": "transitive",
"description": {
"name": "collection",
"sha256": "a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.19.0"
},
"console": {
"dependency": "transitive",
"description": {
"name": "console",
"sha256": "e04e7824384c5b39389acdd6dc7d33f3efe6b232f6f16d7626f194f6a01ad69a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.1.0"
},
"crop_image": {
"dependency": "direct main",
"description": {
"name": "crop_image",
"sha256": "2e629cd141a360cb9060b5a0837fd49b0260d3d931244717213bf164f6813c82",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.15"
},
"cross_file": {
"dependency": "transitive",
"description": {
"name": "cross_file",
"sha256": "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.3.4+2"
},
"crypto": {
"dependency": "transitive",
"description": {
"name": "crypto",
"sha256": "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.6"
},
"equatable": {
"dependency": "transitive",
"description": {
"name": "equatable",
"sha256": "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.7"
},
"fake_async": {
"dependency": "transitive",
"description": {
"name": "fake_async",
"sha256": "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.1"
},
"ffi": {
"dependency": "transitive",
"description": {
"name": "ffi",
"sha256": "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.3"
},
"file": {
"dependency": "transitive",
"description": {
"name": "file",
"sha256": "a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.0.1"
},
"file_selector": {
"dependency": "direct main",
"description": {
"name": "file_selector",
"sha256": "5019692b593455127794d5718304ff1ae15447dea286cdda9f0db2a796a1b828",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.3"
},
"file_selector_android": {
"dependency": "transitive",
"description": {
"name": "file_selector_android",
"sha256": "98ac58e878b05ea2fdb204e7f4fc4978d90406c9881874f901428e01d3b18fbc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.5.1+12"
},
"file_selector_ios": {
"dependency": "transitive",
"description": {
"name": "file_selector_ios",
"sha256": "94b98ad950b8d40d96fee8fa88640c2e4bd8afcdd4817993bd04e20310f45420",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.5.3+1"
},
"file_selector_linux": {
"dependency": "transitive",
"description": {
"name": "file_selector_linux",
"sha256": "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.9.3+2"
},
"file_selector_macos": {
"dependency": "transitive",
"description": {
"name": "file_selector_macos",
"sha256": "271ab9986df0c135d45c3cdb6bd0faa5db6f4976d3e4b437cf7d0f258d941bfc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.9.4+2"
},
"file_selector_platform_interface": {
"dependency": "transitive",
"description": {
"name": "file_selector_platform_interface",
"sha256": "a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.6.2"
},
"file_selector_web": {
"dependency": "transitive",
"description": {
"name": "file_selector_web",
"sha256": "c4c0ea4224d97a60a7067eca0c8fd419e708ff830e0c83b11a48faf566cec3e7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.9.4+2"
},
"file_selector_windows": {
"dependency": "transitive",
"description": {
"name": "file_selector_windows",
"sha256": "8f5d2f6590d51ecd9179ba39c64f722edc15226cc93dcc8698466ad36a4a85a4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.9.3+3"
},
"fl_chart": {
"dependency": "direct main",
"description": {
"name": "fl_chart",
"sha256": "74959b99b92b9eebeed1a4049426fd67c4abc3c5a0f4d12e2877097d6a11ae08",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.69.2"
},
"flutter": {
"dependency": "direct main",
"description": "flutter",
"source": "sdk",
"version": "0.0.0"
},
"flutter_lints": {
"dependency": "direct dev",
"description": {
"name": "flutter_lints",
"sha256": "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.0"
},
"flutter_plugin_android_lifecycle": {
"dependency": "transitive",
"description": {
"name": "flutter_plugin_android_lifecycle",
"sha256": "615a505aef59b151b46bbeef55b36ce2b6ed299d160c51d84281946f0aa0ce0e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.24"
},
"flutter_test": {
"dependency": "direct dev",
"description": "flutter",
"source": "sdk",
"version": "0.0.0"
},
"flutter_web_plugins": {
"dependency": "transitive",
"description": "flutter",
"source": "sdk",
"version": "0.0.0"
},
"gal": {
"dependency": "direct main",
"description": {
"name": "gal",
"sha256": "2771519c8b29f784d5e27f4efc2667667eef51c6c47cccaa0435a8fe8aa208e4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.1"
},
"get_it": {
"dependency": "transitive",
"description": {
"name": "get_it",
"sha256": "d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.7.0"
},
"handy_window": {
"dependency": "direct main",
"description": {
"name": "handy_window",
"sha256": "56b813e58a68b0ee2ab22051400b8b1f1b5cfe88b8cd32288623defb3926245a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.4.0"
},
"http": {
"dependency": "transitive",
"description": {
"name": "http",
"sha256": "b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.2"
},
"http_parser": {
"dependency": "transitive",
"description": {
"name": "http_parser",
"sha256": "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.2"
},
"image": {
"dependency": "direct main",
"description": {
"name": "image",
"sha256": "20842a5ad1555be624c314b0c0cc0566e8ece412f61e859a42efeb6d4101a26c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.5.0"
},
"image_picker": {
"dependency": "direct main",
"description": {
"name": "image_picker",
"sha256": "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.2"
},
"image_picker_android": {
"dependency": "transitive",
"description": {
"name": "image_picker_android",
"sha256": "fa8141602fde3f7e2f81dbf043613eb44dfa325fa0bcf93c0f142c9f7a2c193e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.8.12+18"
},
"image_picker_for_web": {
"dependency": "transitive",
"description": {
"name": "image_picker_for_web",
"sha256": "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.6"
},
"image_picker_ios": {
"dependency": "transitive",
"description": {
"name": "image_picker_ios",
"sha256": "4f0568120c6fcc0aaa04511cb9f9f4d29fc3d0139884b1d06be88dcec7641d6b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.8.12+1"
},
"image_picker_linux": {
"dependency": "transitive",
"description": {
"name": "image_picker_linux",
"sha256": "4ed1d9bb36f7cd60aa6e6cd479779cc56a4cb4e4de8f49d487b1aaad831300fa",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.1+1"
},
"image_picker_macos": {
"dependency": "transitive",
"description": {
"name": "image_picker_macos",
"sha256": "3f5ad1e8112a9a6111c46d0b57a7be2286a9a07fc6e1976fdf5be2bd31d4ff62",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.1+1"
},
"image_picker_platform_interface": {
"dependency": "transitive",
"description": {
"name": "image_picker_platform_interface",
"sha256": "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.10.0"
},
"image_picker_windows": {
"dependency": "transitive",
"description": {
"name": "image_picker_windows",
"sha256": "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.1+1"
},
"json_annotation": {
"dependency": "transitive",
"description": {
"name": "json_annotation",
"sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.9.0"
},
"leak_tracker": {
"dependency": "transitive",
"description": {
"name": "leak_tracker",
"sha256": "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.0.7"
},
"leak_tracker_flutter_testing": {
"dependency": "transitive",
"description": {
"name": "leak_tracker_flutter_testing",
"sha256": "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.8"
},
"leak_tracker_testing": {
"dependency": "transitive",
"description": {
"name": "leak_tracker_testing",
"sha256": "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.0.1"
},
"lints": {
"dependency": "transitive",
"description": {
"name": "lints",
"sha256": "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.0"
},
"matcher": {
"dependency": "transitive",
"description": {
"name": "matcher",
"sha256": "d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.12.16+1"
},
"material_color_utilities": {
"dependency": "transitive",
"description": {
"name": "material_color_utilities",
"sha256": "f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.11.1"
},
"meta": {
"dependency": "transitive",
"description": {
"name": "meta",
"sha256": "bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.15.0"
},
"mime": {
"dependency": "transitive",
"description": {
"name": "mime",
"sha256": "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.0"
},
"msix": {
"dependency": "direct dev",
"description": {
"name": "msix",
"sha256": "c50d6bd1aafe0d071a3c1e5a5ccb056404502935cb0a549e3178c4aae16caf33",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.16.8"
},
"package_config": {
"dependency": "transitive",
"description": {
"name": "package_config",
"sha256": "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.1"
},
"path": {
"dependency": "transitive",
"description": {
"name": "path",
"sha256": "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.9.0"
},
"path_provider_linux": {
"dependency": "transitive",
"description": {
"name": "path_provider_linux",
"sha256": "f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.2.1"
},
"path_provider_platform_interface": {
"dependency": "transitive",
"description": {
"name": "path_provider_platform_interface",
"sha256": "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.2"
},
"path_provider_windows": {
"dependency": "transitive",
"description": {
"name": "path_provider_windows",
"sha256": "bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.0"
},
"petitparser": {
"dependency": "transitive",
"description": {
"name": "petitparser",
"sha256": "c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.0.2"
},
"platform": {
"dependency": "transitive",
"description": {
"name": "platform",
"sha256": "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.6"
},
"plugin_platform_interface": {
"dependency": "transitive",
"description": {
"name": "plugin_platform_interface",
"sha256": "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.8"
},
"posix": {
"dependency": "transitive",
"description": {
"name": "posix",
"sha256": "a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.0.1"
},
"pub_semver": {
"dependency": "transitive",
"description": {
"name": "pub_semver",
"sha256": "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.5"
},
"screen_retriever": {
"dependency": "transitive",
"description": {
"name": "screen_retriever",
"sha256": "570dbc8e4f70bac451e0efc9c9bb19fa2d6799a11e6ef04f946d7886d2e23d0c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"screen_retriever_linux": {
"dependency": "transitive",
"description": {
"name": "screen_retriever_linux",
"sha256": "f7f8120c92ef0784e58491ab664d01efda79a922b025ff286e29aa123ea3dd18",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"screen_retriever_macos": {
"dependency": "transitive",
"description": {
"name": "screen_retriever_macos",
"sha256": "71f956e65c97315dd661d71f828708bd97b6d358e776f1a30d5aa7d22d78a149",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"screen_retriever_platform_interface": {
"dependency": "transitive",
"description": {
"name": "screen_retriever_platform_interface",
"sha256": "ee197f4581ff0d5608587819af40490748e1e39e648d7680ecf95c05197240c0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"screen_retriever_windows": {
"dependency": "transitive",
"description": {
"name": "screen_retriever_windows",
"sha256": "449ee257f03ca98a57288ee526a301a430a344a161f9202b4fcc38576716fe13",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.2.0"
},
"shared_preferences": {
"dependency": "direct main",
"description": {
"name": "shared_preferences",
"sha256": "3c7e73920c694a436afaf65ab60ce3453d91f84208d761fbd83fc21182134d93",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.4"
},
"shared_preferences_android": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_android",
"sha256": "02a7d8a9ef346c9af715811b01fbd8e27845ad2c41148eefd31321471b41863d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.0"
},
"shared_preferences_foundation": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_foundation",
"sha256": "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.5.4"
},
"shared_preferences_linux": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_linux",
"sha256": "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.1"
},
"shared_preferences_platform_interface": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_platform_interface",
"sha256": "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.1"
},
"shared_preferences_web": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_web",
"sha256": "d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.2"
},
"shared_preferences_windows": {
"dependency": "transitive",
"description": {
"name": "shared_preferences_windows",
"sha256": "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.1"
},
"sky_engine": {
"dependency": "transitive",
"description": "flutter",
"source": "sdk",
"version": "0.0.0"
},
"source_span": {
"dependency": "transitive",
"description": {
"name": "source_span",
"sha256": "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.10.0"
},
"stack_trace": {
"dependency": "transitive",
"description": {
"name": "stack_trace",
"sha256": "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.12.0"
},
"stream_channel": {
"dependency": "transitive",
"description": {
"name": "stream_channel",
"sha256": "ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.2"
},
"string_scanner": {
"dependency": "transitive",
"description": {
"name": "string_scanner",
"sha256": "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.0"
},
"term_glyph": {
"dependency": "transitive",
"description": {
"name": "term_glyph",
"sha256": "a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.1"
},
"test_api": {
"dependency": "transitive",
"description": {
"name": "test_api",
"sha256": "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.7.3"
},
"typed_data": {
"dependency": "transitive",
"description": {
"name": "typed_data",
"sha256": "f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.0"
},
"url_launcher": {
"dependency": "direct main",
"description": {
"name": "url_launcher",
"sha256": "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.1"
},
"url_launcher_android": {
"dependency": "transitive",
"description": {
"name": "url_launcher_android",
"sha256": "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.14"
},
"url_launcher_ios": {
"dependency": "transitive",
"description": {
"name": "url_launcher_ios",
"sha256": "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.2"
},
"url_launcher_linux": {
"dependency": "transitive",
"description": {
"name": "url_launcher_linux",
"sha256": "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.1"
},
"url_launcher_macos": {
"dependency": "transitive",
"description": {
"name": "url_launcher_macos",
"sha256": "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.2"
},
"url_launcher_platform_interface": {
"dependency": "transitive",
"description": {
"name": "url_launcher_platform_interface",
"sha256": "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.2"
},
"url_launcher_web": {
"dependency": "transitive",
"description": {
"name": "url_launcher_web",
"sha256": "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.3"
},
"url_launcher_windows": {
"dependency": "transitive",
"description": {
"name": "url_launcher_windows",
"sha256": "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.3"
},
"vector_math": {
"dependency": "transitive",
"description": {
"name": "vector_math",
"sha256": "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.4"
},
"vm_service": {
"dependency": "transitive",
"description": {
"name": "vm_service",
"sha256": "f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "14.3.0"
},
"web": {
"dependency": "transitive",
"description": {
"name": "web",
"sha256": "cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.0"
},
"window_manager": {
"dependency": "direct main",
"description": {
"name": "window_manager",
"sha256": "732896e1416297c63c9e3fb95aea72d0355f61390263982a47fd519169dc5059",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.4.3"
},
"xdg_directories": {
"dependency": "transitive",
"description": {
"name": "xdg_directories",
"sha256": "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.0"
},
"xml": {
"dependency": "transitive",
"description": {
"name": "xml",
"sha256": "b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.5.0"
},
"yaml": {
"dependency": "transitive",
"description": {
"name": "yaml",
"sha256": "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.2"
}
},
"sdks": {
"dart": ">=3.5.0 <4.0.0",
"flutter": ">=3.24.0"
}
}