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,108 @@
{
lib,
python3Packages,
fetchFromGitHub,
wrapGAppsHook3,
gtk3,
gobject-introspection,
libappindicator-gtk3,
librsvg,
bluez,
linuxHeaders,
libX11,
libXext,
libXfixes,
libusb1,
udev,
udevCheckHook,
gtk-layer-shell,
}:
python3Packages.buildPythonApplication rec {
pname = "sc-controller";
version = "0.5.4";
format = "setuptools";
src = fetchFromGitHub {
owner = "C0rn3j";
repo = "sc-controller";
tag = "v${version}";
hash = "sha256-7rSsRoxFCXSHSIIoBrIPPY+4/+M99Hdop8+EeryJues=";
};
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
udevCheckHook
];
buildInputs = [
gtk3
libappindicator-gtk3
librsvg
];
dependencies =
with python3Packages;
[
evdev
pygobject3
pylibacl
vdf
ioctl-opt
]
++ [
gtk-layer-shell
python3Packages.libusb1
];
nativeCheckInputs = [
python3Packages.pytestCheckHook
python3Packages.libusb1
python3Packages.toml
];
patches = [ ./scc_osd_keyboard.patch ];
postPatch = ''
substituteInPlace scc/paths.py --replace sys.prefix "'$out'"
substituteInPlace scc/uinput.py --replace /usr/include ${linuxHeaders}/include
substituteInPlace scc/device_monitor.py --replace "find_library('bluetooth')" "'libbluetooth.so.3'"
'';
LD_LIBRARY_PATH = lib.makeLibraryPath [
libX11
libXext
libXfixes
libusb1
udev
bluez
];
preFixup = ''
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH")
'';
postFixup = ''
(
# scc runs these scripts as programs. (See find_binary() in scc/tools.py.)
cd $out/lib/python*/site-packages/scc/x11
patchPythonScript scc-autoswitch-daemon.py
patchPythonScript scc-osd-daemon.py
)
'';
doInstallCheck = true;
meta = {
homepage = "https://github.com/C0rn3j/sc-controller";
# donations: https://www.patreon.com/kozec
description = "User-mode driver and GUI for Steam Controller and other controllers";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
orivej
rnhmjoj
];
};
}

View File

@@ -0,0 +1,21 @@
diff --git a/scc/bin/scc_osd_keyboard.py b/scc/bin/scc_osd_keyboard.py
index 832d6e0..29e0cda 100755
--- a/scc/bin/scc_osd_keyboard.py
+++ b/scc/bin/scc_osd_keyboard.py
@@ -5,7 +5,7 @@ def sigint(*a):
print("\n*break*")
sys.exit(0)
-if __name__ == "__main__":
+def main():
signal.signal(signal.SIGINT, sigint)
import gi
@@ -23,3 +23,6 @@ if __name__ == "__main__":
sys.exit(1)
k.run()
sys.exit(k.get_exit_code())
+
+if __name__ == "__main__":
+ main()

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
pkg-config,
which,
bison,
gnuplot,
libxls,
libxlsxwriter,
libxml2,
libzip,
ncurses,
xlsSupport ? false,
}:
stdenv.mkDerivation rec {
pname = "sc-im";
version = "0.8.5";
src = fetchFromGitHub {
owner = "andmarti1424";
repo = "sc-im";
rev = "v${version}";
sha256 = "sha256-V2XwzZwn+plMxQuTCYxbeTaqdud69z77oMDDDi+7Jw0=";
};
sourceRoot = "${src.name}/src";
nativeBuildInputs = [
makeWrapper
pkg-config
which
bison
];
buildInputs = [
gnuplot
libxml2
libzip
ncurses
]
++ lib.optionals xlsSupport [
libxls
libxlsxwriter
];
makeFlags = [ "prefix=${placeholder "out"}" ];
# https://github.com/andmarti1424/sc-im/issues/884
hardeningDisable = [ "fortify" ];
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=implicit-function-declaration";
postInstall = ''
wrapProgram "$out/bin/sc-im" --prefix PATH : "${lib.makeBinPath [ gnuplot ]}"
'';
meta = with lib; {
changelog = "https://github.com/andmarti1424/sc-im/blob/${src.rev}/CHANGES";
homepage = "https://github.com/andmarti1424/sc-im";
description = "Ncurses spreadsheet program for terminal";
license = licenses.bsdOriginal;
maintainers = with maintainers; [ dotlambda ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,47 @@
{
stdenv,
fetchFromGitHub,
ncurses,
bison,
lib,
}:
stdenv.mkDerivation {
pname = "sc";
version = "2024-08-15";
src = fetchFromGitHub {
repo = "sc";
owner = "n-t-roff";
rev = "e029bc0fb5fa29da1fd23b04fa2a97039a96d2ba";
hash = "sha256-JQY+ixHL+TpP4YRpgB9GP4jO5+PBMS/v5Ad3Ux0+yuQ=";
};
buildInputs = [ ncurses ];
nativeBuildInputs = [ bison ];
installFlags = [ "prefix=$(out)" ];
# Non-standard configure script
configurePhase = "./configure";
outputs = [
"out"
"man"
];
meta = {
description = "Curses-based spreadsheet calculator";
longDescription = ''
This is a fork of the old sc-7.16 application with attention paid to
reduced compiler warnings, bugfixes, and functionality improvements
(e.g. mouse suport, configurability via .scrc).
See CHANGES-git or README.md for a full list of changes.
'';
homepage = "https://github.com/n-t-roff/sc";
license = lib.licenses.unlicense;
maintainers = [ lib.maintainers.claes ];
};
}

View File

@@ -0,0 +1,77 @@
{
fetchzip,
licenseAccepted,
}:
let
fetchzip' =
if !licenseAccepted then
throw ''
You must accept the Blizzard® Starcraft® II AI and Machine Learning License at
https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
''
else
assert licenseAccepted;
args:
(fetchzip args).overrideAttrs (old: {
UNZIP = "-j -P iagreetotheeula";
});
in
{
minigames = fetchzip {
url = "https://github.com/deepmind/pysc2/releases/download/v1.2/mini_games.zip";
sha256 = "19f873ilcdsf50g2v0s2zzmxil1bqncsk8nq99bzy87h0i7khkla";
stripRoot = false;
};
melee = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Melee.zip";
sha256 = "0z44pgy10jklsvgpr0kcn4c2mz3hw7nlcmvsy6a6lzpi3dvzf33i";
stripRoot = false;
};
ladder2017season1 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season1.zip";
sha256 = "0ngg4g74s2ryhylny93fm8yq9rlrhphwnjg2s6f3qr85a2b3zdpd";
stripRoot = false;
};
ladder2017season2 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season2.zip";
sha256 = "01kycnvqagql9pkjkcgngfcnry2pc4kcygdkk511m0qr34909za5";
stripRoot = false;
};
ladder2017season3 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season3_Updated.zip";
sha256 = "0wix3lwmbyxfgh8ldg0n66i21p0dbavk2dxjngz79rx708m8qvld";
stripRoot = false;
};
ladder2017season4 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2017Season4.zip";
sha256 = "1sidnmk2rc9j5fd3a4623pvaika1mm1rwhznb2qklsqsq1x2qckp";
stripRoot = false;
};
ladder2018season1 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season1.zip";
sha256 = "0mp0ilcq0gmd7ahahc5i8c7bdr3ivk6skx0b2cgb1z89l5d76irq";
stripRoot = false;
};
ladder2018season2 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season2_Updated.zip";
sha256 = "176rs848cx5src7qbr6dnn81bv1i86i381fidk3v81q9bxlmc2rv";
stripRoot = false;
};
ladder2018season3 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season3.zip";
sha256 = "1r3wv4w53g9zq6073ajgv74prbdsd1x3zfpyhv1kpxbffyr0x0zp";
stripRoot = false;
};
ladder2018season4 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2018Season4.zip";
sha256 = "0k47rr6pzxbanlqnhliwywkvf0w04c8hxmbanksbz6aj5wpkcn1s";
stripRoot = false;
};
ladder2019season1 = fetchzip' {
url = "http://blzdistsc2-a.akamaihd.net/MapPacks/Ladder2019Season1.zip";
sha256 = "1dlk9zza8h70lbjvg2ykc5wr9vsvvdk02szwrkgdw26mkssl2rg9";
stripRoot = false;
};
}

View File

@@ -0,0 +1,74 @@
{
config,
stdenv,
callPackage,
lib,
fetchurl,
unzip,
licenseAccepted ? config.sc2-headless.accept_license or false,
}:
let
maps = callPackage ./maps.nix { inherit licenseAccepted; };
in
stdenv.mkDerivation rec {
version = "4.7.1";
pname = "sc2-headless";
src = fetchurl {
url = "https://blzdistsc2-a.akamaihd.net/Linux/SC2.${version}.zip";
sha256 = "0q1ry9bd3dm8y4hvh57yfq7s05hl2k2sxi2wsl6h0r3w690v1kdd";
};
unpackCmd =
if !licenseAccepted then
throw ''
You must accept the Blizzard® Starcraft® II AI and Machine Learning License at
https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
''
else
assert licenseAccepted;
''
unzip -P 'iagreetotheeula' $curSrc
'';
nativeBuildInputs = [ unzip ];
installPhase = ''
mkdir -p $out
cp -r . "$out"
rm -r $out/Libs
cp -ur "${maps.minigames}"/* "${maps.melee}"/* "${maps.ladder2017season1}"/* "${maps.ladder2017season2}"/* "${maps.ladder2017season3}"/* \
"${maps.ladder2017season4}"/* "${maps.ladder2018season1}"/* "${maps.ladder2018season2}"/* \
"${maps.ladder2018season3}"/* "${maps.ladder2018season4}"/* "${maps.ladder2019season1}"/* "$out"/Maps/
'';
preFixup = ''
find $out -type f -print0 | while IFS=''' read -d ''' -r file; do
isELF "$file" || continue
patchelf \
--interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath ${
lib.makeLibraryPath [
stdenv.cc.cc
stdenv.cc.libc
]
} \
"$file"
done
'';
meta = {
platforms = lib.platforms.linux;
description = "Starcraft II headless linux client for machine learning research";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = {
fullName = "BLIZZARD® STARCRAFT® II AI AND MACHINE LEARNING LICENSE";
url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
free = false;
};
maintainers = [ ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchsvn,
pkg-config,
which,
autoconf,
automake,
libtool,
hexdump,
libao,
zlib,
curl,
}:
stdenv.mkDerivation {
pname = "sc68";
version = "unstable-2022-11-24";
src = fetchsvn {
url = "svn://svn.code.sf.net/p/sc68/code/";
rev = "695";
sha256 = "sha256-RO3Yhjalu49BUM0fYOZtI2l6KbuUuw03whRxlKneabo=";
};
preConfigure = "tools/svn-bootstrap.sh";
enableParallelBuilding = true;
nativeBuildInputs = [
autoconf
automake
hexdump
libtool
pkg-config
which
];
buildInputs = [
curl
libao
zlib
];
meta = with lib; {
description = "Atari ST and Amiga music player";
homepage = "http://sc68.atari.org/project.html";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
python3,
fetchFromGitLab,
fetchFromGitHub,
}:
let
python = python3.override {
packageOverrides = self: super: {
lark010 = super.lark.overridePythonAttrs (old: rec {
version = "0.10.0";
src = fetchFromGitHub {
owner = "lark-parser";
repo = "lark";
tag = version;
sha256 = "sha256-ctdPPKPSD4weidyhyj7RCV89baIhmuxucF3/Ojx1Efo=";
};
patches = [ ];
disabledTestPaths = [ "tests/test_nearley/test_nearley.py" ];
});
};
self = python;
};
in
python.pkgs.buildPythonApplication rec {
pname = "sca2d";
version = "0.2.2";
pyproject = true;
src = fetchFromGitLab {
owner = "bath_open_instrumentation_group";
repo = "sca2d";
tag = "v${version}";
hash = "sha256-p0Bv8jcnjcOLBAXN5A4GspSIEG4G4NPA4o0aEtwe/LU=";
};
build-system = with python.pkgs; [ setuptools ];
dependencies = with python.pkgs; [
lark010
colorama
];
pythonImportsCheck = [ "sca2d" ];
meta = {
description = "Experimental static code analyser for OpenSCAD";
mainProgram = "sca2d";
homepage = "https://gitlab.com/bath_open_instrumentation_group/sca2d";
changelog = "https://gitlab.com/bath_open_instrumentation_group/sca2d/-/blob/v${version}/CHANGELOG.md";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ traxys ];
};
}

View File

@@ -0,0 +1,103 @@
{
stdenv,
coreutils,
lib,
installShellFiles,
zlib,
autoPatchelfHook,
fetchurl,
makeWrapper,
callPackage,
jre,
testers,
scala-cli,
}:
let
pname = "scala-cli";
sources = lib.importJSON ./sources.json;
inherit (sources) version assets;
platforms = builtins.attrNames assets;
in
stdenv.mkDerivation {
inherit pname version;
nativeBuildInputs = [
installShellFiles
makeWrapper
]
++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook;
buildInputs =
assert lib.assertMsg (lib.versionAtLeast jre.version "17.0.0") ''
scala-cli requires Java 17 or newer, but ${jre.name} is ${jre.version}
'';
[
coreutils
zlib
stdenv.cc.cc
];
src =
let
asset =
assets."${stdenv.hostPlatform.system}"
or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
in
fetchurl {
url = "https://github.com/Virtuslab/scala-cli/releases/download/v${version}/${asset.asset}";
sha256 = asset.sha256;
};
unpackPhase = ''
runHook preUnpack
gzip -d < $src > scala-cli
runHook postUnpack
'';
installPhase = ''
runHook preInstall
install -Dm755 scala-cli $out/bin/.scala-cli-wrapped
makeWrapper $out/bin/.scala-cli-wrapped $out/bin/scala-cli \
--set JAVA_HOME ${jre.home} \
--argv0 "$out/bin/scala-cli"
runHook postInstall
'';
# We need to call autopatchelf before generating completions
dontAutoPatchelf = true;
postFixup =
lib.optionalString stdenv.hostPlatform.isLinux ''
autoPatchelf $out
''
+ ''
# hack to ensure the completion function looks right
# as $0 is used to generate the compdef directive
mkdir temp
cp $out/bin/.scala-cli-wrapped temp/scala-cli
PATH="./temp:$PATH"
installShellCompletion --cmd scala-cli \
--bash <(scala-cli completions bash) \
--zsh <(scala-cli completions zsh)
'';
meta = with lib; {
homepage = "https://scala-cli.virtuslab.org";
downloadPage = "https://github.com/VirtusLab/scala-cli/releases/v${version}";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.asl20;
description = "Command-line tool to interact with the Scala language";
mainProgram = "scala-cli";
maintainers = with maintainers; [
kubukoz
agilesteel
];
inherit platforms;
};
passthru.updateScript = callPackage ./update.nix { } { inherit platforms pname version; };
passthru.tests.version = testers.testVersion {
package = scala-cli;
command = "scala-cli version --offline";
};
}

View File

@@ -0,0 +1,21 @@
{
"version": "1.9.1",
"assets": {
"aarch64-darwin": {
"asset": "scala-cli-aarch64-apple-darwin.gz",
"sha256": "1hlhhy3ncjfjn1k9cc0k8sl43mjgxbsppjy4igs4an2l88pwi9nk"
},
"aarch64-linux": {
"asset": "scala-cli-aarch64-pc-linux.gz",
"sha256": "1lzqyk253bavn9lmb9isa3qx2ylzags9mglb7j433syih8fv2y5z"
},
"x86_64-darwin": {
"asset": "scala-cli-x86_64-apple-darwin.gz",
"sha256": "1vkbr6nhdfi33402hp60i0b078xbipcg3sc7dfinlikvp4vi6jrm"
},
"x86_64-linux": {
"asset": "scala-cli-x86_64-pc-linux.gz",
"sha256": "03d5m0kdb417yf9zw0pkh0wrqivrvvr7akk2xnznbqqjsxfq4sfx"
}
}
}

View File

@@ -0,0 +1,60 @@
{
lib,
curl,
writeShellScript,
jq,
gnused,
git,
nix,
coreutils,
}:
{
platforms,
pname,
version,
}:
writeShellScript "${pname}-update-script" ''
set -o errexit
PATH=${
lib.makeBinPath [
curl
jq
gnused
git
nix
coreutils
]
}
latest_version=$(curl -s "https://api.github.com/repos/VirtusLab/scala-cli/releases?per_page=1" | jq ".[0].tag_name" --raw-output | sed 's/^v//')
if [[ "${version}" = "$latest_version" ]]; then
echo "The new version same as the old version."
exit 0
fi
nixpkgs=$(git rev-parse --show-toplevel)
sources_json="$nixpkgs/pkgs/by-name/sc/scala-cli/sources.json"
platform_assets=()
for platform in ${lib.concatStringsSep " " platforms}; do
asset=$(jq ".assets.\"$platform\".asset" --raw-output < $sources_json)
release_asset_url="https://github.com/Virtuslab/scala-cli/releases/download/v$latest_version/$asset"
asset_hash=$(nix-prefetch-url "$release_asset_url")
asset_object=$(jq --compact-output --null-input \
--arg asset "$asset" \
--arg sha256 "$asset_hash" \
--arg platform "$platform" \
'{asset: $asset, sha256: $sha256, platform: $platform}')
platform_assets+=($asset_object)
done
printf '%s\n' "''${platform_assets[@]}" | \
jq -s "map ( { (.platform): . | del(.platform) }) | add" | \
jq --arg version $latest_version \
'{ version: $version, assets: . }' > $sources_json
''

View File

@@ -0,0 +1,10 @@
{ scala, fetchurl }:
scala.bare.overrideAttrs (oldAttrs: {
version = "3.7.3";
pname = "scala-next";
src = fetchurl {
inherit (oldAttrs.src) url;
hash = "sha256-KmIgDOX4TtioGvcDJ0+sGxq+fFqlKM/hZNBb0Q+7Z8A=";
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenvNoCC,
coursier,
buildGraalvmNativeImage,
}:
buildGraalvmNativeImage (finalAttrs: {
pname = "scala-update";
version = "0.2.2";
buildInputs = [ finalAttrs.finalPackage.passthru.deps ];
src = "${finalAttrs.finalPackage.passthru.deps}/share/java/scala-update_2.13-${finalAttrs.version}.jar";
extraNativeImageBuildArgs = [
"--no-fallback"
"--enable-url-protocols=https"
"update.Main"
];
buildPhase = ''
runHook preBuild
native-image ''${nativeImageArgs[@]} -cp $(JARS=("${finalAttrs.finalPackage.passthru.deps}/share/java"/*.jar); IFS=:; echo "''${JARS[*]}")
runHook postBuild
'';
installCheckPhase = ''
runHook preInstallCheck
$out/bin/scala-update --version | grep -q "${finalAttrs.version}"
runHook postInstallCheck
'';
passthru.deps = stdenvNoCC.mkDerivation {
name = "scala-update-deps-${finalAttrs.version}";
buildCommand = ''
export COURSIER_CACHE=$(pwd)
${lib.getExe coursier} fetch io.github.kitlangton:scala-update_2.13:${finalAttrs.version} > deps
mkdir -p $out/share/java
cp $(< deps) $out/share/java/
'';
outputHashMode = "recursive";
outputHashAlgo = "sha256";
outputHash = "kNnFzzHn+rFq4taqRYjBYaDax0MHW+vIoSFVN3wxA8M=";
};
meta = {
description = "Update your Scala dependencies interactively";
homepage = "https://github.com/kitlangton/scala-update";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.rtimush ];
mainProgram = "scala-update";
};
})

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
jre8,
coursier,
makeWrapper,
installShellFiles,
setJavaClassPath,
testers,
}:
let
jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
in
stdenv.mkDerivation (finalAttrs: {
pname = "scalafix";
version = "0.12.0";
deps = stdenv.mkDerivation {
name = "${finalAttrs.pname}-deps-${finalAttrs.version}";
buildCommand = ''
export COURSIER_CACHE=$(pwd)
${coursier}/bin/cs fetch ch.epfl.scala:scalafix-cli_2.13.13:${finalAttrs.version} > deps
mkdir -p $out/share/java
cp $(< deps) $out/share/java/
'';
outputHashMode = "recursive";
outputHash = "sha256-HMTnr3awTIAgLSl4eF36U1kv162ajJxC5MreSk2TfUE=";
};
nativeBuildInputs = [
makeWrapper
installShellFiles
setJavaClassPath
];
buildInputs = [ finalAttrs.deps ];
dontUnpack = true;
installPhase = ''
makeWrapper ${jre}/bin/java $out/bin/${finalAttrs.pname} \
--add-flags "-cp $CLASSPATH scalafix.cli.Cli"
installShellCompletion --cmd ${finalAttrs.pname} \
--bash <($out/bin/${finalAttrs.pname} --bash) \
--zsh <($out/bin/${finalAttrs.pname} --zsh)
'';
passthru.tests = {
testVersion = testers.testVersion {
package = finalAttrs.finalPackage;
version = "${finalAttrs.version}";
};
};
meta = with lib; {
description = "Refactoring and linting tool for Scala";
mainProgram = "scalafix";
homepage = "https://scalacenter.github.io/scalafix/";
license = licenses.bsd3;
maintainers = [ maintainers.tomahna ];
sourceProvenance = with sourceTypes; [ binaryBytecode ];
};
})

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
jre,
coursier,
makeWrapper,
setJavaClassPath,
}:
let
baseName = "scalafmt";
version = "3.9.8";
deps = stdenv.mkDerivation {
name = "${baseName}-deps-${version}";
buildCommand = ''
export COURSIER_CACHE=$(pwd)
${coursier}/bin/cs fetch org.scalameta:scalafmt-cli_2.13:${version} > deps
mkdir -p $out/share/java
cp $(< deps) $out/share/java/
'';
outputHashMode = "recursive";
outputHash = "sha256-mZrRb2n+ZE0DmQaH9iSMzPcpdZPtflekkP8bHv6Qw4k=";
};
in
stdenv.mkDerivation {
pname = baseName;
inherit version;
nativeBuildInputs = [
makeWrapper
setJavaClassPath
];
buildInputs = [ deps ];
dontUnpack = true;
installPhase = ''
runHook preInstall
makeWrapper ${jre}/bin/java $out/bin/${baseName} \
--add-flags "-cp $CLASSPATH org.scalafmt.cli.Cli"
runHook postInstall
'';
installCheckPhase = ''
$out/bin/${baseName} --version | grep -q "${version}"
'';
meta = {
description = "Opinionated code formatter for Scala";
homepage = "http://scalameta.org/scalafmt";
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.markus1189 ];
mainProgram = "scalafmt";
};
}

View File

@@ -0,0 +1,122 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
gfortran,
mpiCheckPhaseHook,
mpi,
blas,
lapack,
testers,
}:
assert blas.isILP64 == lapack.isILP64;
stdenv.mkDerivation (finalAttrs: {
pname = "scalapack";
version = "2.2.2";
src = fetchFromGitHub {
owner = "Reference-ScaLAPACK";
repo = "scalapack";
tag = "v${finalAttrs.version}";
hash = "sha256-KDMW/D7ubGaD2L7eTwULJ04fAYDPAKl8xKPZGZMkeik=";
};
passthru = {
inherit (blas) isILP64;
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
__structuredAttrs = true;
patches = [
(fetchpatch {
name = "version-string";
url = "https://github.com/Reference-ScaLAPACK/scalapack/commit/76cc1ed3032e9a4158a4513c9047c3746b269f04.patch";
hash = "sha256-kmllLa9GUeTrHRYeS0yIk9I8LwaIoEytdyQGRuinn3A=";
})
(fetchpatch {
name = "scalapack-fix-cmake-4.patch";
url = "https://github.com/Reference-ScaLAPACK/scalapack/commit/c3d6b22b0032fd2b8772d99c2239c18473e197a7.patch";
hash = "sha256-935KtaqPO2cghbD9Z8YMxGGOQJo1D1LqTje6/IL4bGI=";
})
];
# Required to activate ILP64.
# See https://github.com/Reference-ScaLAPACK/scalapack/pull/19
postPatch = lib.optionalString finalAttrs.passthru.isILP64 ''
sed -i 's/INTSZ = 4/INTSZ = 8/g' TESTING/EIG/* TESTING/LIN/*
sed -i 's/INTGSZ = 4/INTGSZ = 8/g' TESTING/EIG/* TESTING/LIN/*
# These tests are not adapted to ILP64
sed -i '/xssep/d;/xsgsep/d;/xssyevr/d' TESTING/CMakeLists.txt
'';
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
gfortran
];
nativeCheckInputs = [ mpiCheckPhaseHook ];
propagatedBuildInputs = [
blas
lapack
mpi
];
# xslu and xsllt tests seem to time out on x86_64-darwin.
# this line is left so those who force installation on x86_64-darwin can still build
doCheck = !(stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isDarwin);
cmakeFlags = [
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
(lib.cmakeFeature "LAPACK_LIBRARIES" "-llapack")
(lib.cmakeFeature "BLAS_LIBRARIES" "-lblas")
(lib.cmakeFeature "CMAKE_C_FLAGS" "${lib.concatStringsSep " " [
"-Wno-implicit-function-declaration"
(lib.optionalString finalAttrs.passthru.isILP64 "-DInt=long")
]}")
]
++ lib.optionals finalAttrs.passthru.isILP64 [
(lib.cmakeFeature "CMAKE_Fortran_FLAGS" "-fdefault-integer-8")
];
# Increase individual test timeout from 1500s to 10000s because hydra's builds
# sometimes fail due to this
checkFlags = [ "ARGS=--timeout 10000" ];
postFixup = ''
# _IMPORT_PREFIX, used to point to lib, points to dev output. Every package using the generated
# cmake file will thus look for the library in the dev output instead of out.
# Use the absolute path to $out instead to fix the issue.
substituteInPlace $dev/lib/cmake/scalapack-${finalAttrs.version}/scalapack-targets-release.cmake \
--replace-fail "\''${_IMPORT_PREFIX}" "$out"
'';
meta = {
homepage = "http://www.netlib.org/scalapack/";
description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
pkgConfigModules = [ "scalapack" ];
maintainers = with lib.maintainers; [
costrouc
markuskowa
gdinh
];
# xslu and xsllt tests fail on x86 darwin
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchurl,
rpmextract,
patchelf,
testers,
scaleft,
}:
stdenv.mkDerivation rec {
pname = "scaleft";
version = "1.80.1";
src = fetchurl {
url = "https://dist.scaleft.com/repos/rpm/stable/centos/9/x86_64/1.80.1/scaleft-client-tools-${version}-1.x86_64.rpm";
sha256 = "sha256-QrkqAgkplFF6Tp6FWKb2TJaqeOw8ec4zd9pymDP2IyY=";
};
nativeBuildInputs = [
patchelf
rpmextract
];
libPath = lib.makeLibraryPath [
stdenv.cc
stdenv.cc.cc
];
buildCommand = ''
mkdir -p $out/bin/
cd $out
rpmextract $src
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
usr/bin/sft
patchelf \
--set-rpath ${libPath} \
usr/bin/sft
ln -s $out/usr/bin/sft $out/bin/sft
chmod +x $out/bin/sft
patchShebangs $out
'';
passthru.tests.version = testers.testVersion {
package = scaleft;
command = "sft -v";
version = "sft version ${version}";
};
meta = with lib; {
description = "Zero Trust software which you can use to secure your internal servers and services";
homepage = "https://www.scaleft.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ jloyet ];
platforms = [ "x86_64-linux" ];
mainProgram = "sft";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
fetchFromGitHub,
buildGoModule,
}:
buildGoModule rec {
pname = "scaleway-cli";
version = "2.42.0";
src = fetchFromGitHub {
owner = "scaleway";
repo = "scaleway-cli";
rev = "v${version}";
sha256 = "sha256-bLttAE8IXTeIZ70wxBGxwozI2DVrdFnHdrCS3PL9UHA=";
};
vendorHash = "sha256-ivjTL/eiQmj8228VYlgoRzjw9pt6QiwnsXKyjIXfc3M=";
ldflags = [
"-w"
"-extldflags"
"-static"
"-X main.Version=${version}"
"-X main.GitCommit=ref/tags/${version}"
"-X main.GitBranch=HEAD"
"-X main.BuildDate=unknown"
];
doCheck = true;
# Some tests require access to scaleway's API, failing when sandboxed
preCheck = ''
substituteInPlace core/bootstrap_test.go \
--replace-warn "TestInterruptError" "SkipInterruptError"
substituteInPlace internal/e2e/errors_test.go \
--replace-warn "TestStandardErrors" "SkipStandardErrors"
substituteInPlace internal/e2e/human_test.go \
--replace-warn "TestTestCommand" "SkipTestCommand" \
--replace-warn "TestHumanCreate" "SkipHumanCreate" \
--replace-warn "TestHumanList" "SkipHumanList" \
--replace-warn "TestHumanUpdate" "SkipHumanUpdate" \
--replace-warn "TestHumanGet" "SkipHumanGet" \
--replace-warn "TestHumanDelete" "SkipHumanDelete"
substituteInPlace internal/e2e/sdk_errors_test.go \
--replace-warn "TestSdkStandardErrors" "SkipSdkStandardErrors"
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/scw --help
runHook postInstallCheck
'';
meta = with lib; {
description = "Interact with Scaleway API from the command line";
homepage = "https://github.com/scaleway/scaleway-cli";
license = licenses.mit;
maintainers = with maintainers; [
nickhu
techknowlogick
kashw2
];
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "scalingo";
version = "1.40.0";
src = fetchFromGitHub {
owner = pname;
repo = "cli";
rev = version;
hash = "sha256-AY2Iy7MwZ0OmNdv9EPgJ79Ug8pDuxlVNtLRhlX+XCC4=";
};
vendorHash = null;
preCheck = ''
export HOME=$TMPDIR
'';
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
rm $out/bin/dists
installShellCompletion --cmd scalingo \
--bash cmd/autocomplete/scripts/scalingo_complete.bash \
--zsh cmd/autocomplete/scripts/scalingo_complete.zsh
'';
meta = with lib; {
description = "Command line client for the Scalingo PaaS";
mainProgram = "scalingo";
homepage = "https://doc.scalingo.com/platform/cli/start";
changelog = "https://github.com/Scalingo/cli/blob/master/CHANGELOG.md";
license = licenses.bsdOriginal;
maintainers = with maintainers; [ cimm ];
platforms = with lib.platforms; unix;
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchgit,
cmake,
withGurobi ? false,
gurobi,
withCplex ? false,
cplex,
withLpsolve ? true,
lp_solve,
unstableGitUpdater,
}:
stdenv.mkDerivation rec {
pname = "scalp";
version = "0-unstable-2024-08-28";
src = fetchgit {
url = "https://digidev.digi.e-technik.uni-kassel.de/git/scalp.git";
# mirrored at https://git.sr.ht/~weijia/scalp
rev = "4a8e8b850a57328d9377ea7955c27c437394ebd3";
hash = "sha256-6OEf3yWFBmTKgeTMojRMRf/t9Ec1i851Lx3mQjCeOuw=";
};
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "\''$ORIGIN" "\''${CMAKE_INSTALL_PREFIX}/lib" \
--replace-fail "-m64" ""
substituteInPlace src/tests/CMakeLists.txt \
--replace-fail "src/tests/" ""
''
+ lib.optionalString withGurobi ''
substituteInPlace CMakeExtensions/FindGurobi.cmake \
--replace-fail "\''${GUROBI_VERSION}" '"${lib.versions.major gurobi.version}${lib.versions.minor gurobi.version}"'
'';
nativeBuildInputs = [
cmake
];
buildInputs =
lib.optionals withGurobi [
gurobi
]
++ lib.optionals withCplex [
cplex
]
++ lib.optionals withLpsolve [
lp_solve
];
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTS" doCheck)
]
++ lib.optionals withGurobi [
(lib.cmakeFeature "GUROBI_ROOT_DIR" "${gurobi}")
]
++ lib.optionals withCplex [
(lib.cmakeFeature "CPLEX_ROOT_DIR" "${cplex}")
]
++ lib.optionals withLpsolve [
(lib.cmakeFeature "LPSOLVE_ROOT_DIR" "${lp_solve}")
];
doCheck = true;
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Scalable Linear Programming Library";
mainProgram = "scalp";
homepage = "https://digidev.digi.e-technik.uni-kassel.de/scalp/";
license = lib.licenses.lgpl3Only;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ wegank ];
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
fetchFromGitHub,
stdenv,
autoconf,
automake,
libtool,
tre,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scalpel";
version = "2.1";
src = fetchFromGitHub {
owner = "sleuthkit";
repo = "scalpel";
rev = "35e1367ef2232c0f4883c92ec2839273c821dd39";
hash = "sha256-0lqU1CAcWXNw9WFa29BXla1mvABlzWV+hcozZyfR0oE=";
};
nativeBuildInputs = [
autoconf
automake
libtool
];
buildInputs = [
tre
];
postPatch = ''
sed -i \
-e 's|#define\s*SCALPEL_DEFAULT_CONFIG_FILE\s.*"scalpel.conf"|#define SCALPEL_DEFAULT_CONFIG_FILE "${placeholder "out"}/share/scalpel/scalpel.conf"|' \
src/scalpel.h
'';
env.CXXFLAGS =
"-std=c++14" + lib.optionalString stdenv.cc.isClang " -Wno-error=reserved-user-defined-literal";
preConfigure = ''
./bootstrap
'';
configureFlags = [
"--with-pic"
];
postInstall = ''
install -Dm644 scalpel.conf -t $out/share/scalpel/
'';
meta = with lib; {
homepage = "https://github.com/sleuthkit/scalpel";
description = "Recover files based on their headers, footers and internal data structures, based on Foremost";
mainProgram = "scalpel";
maintainers = with maintainers; [ shard7 ];
platforms = platforms.unix;
license = with licenses; [ asl20 ];
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "scalr-cli";
version = "0.17.4";
src = fetchFromGitHub {
owner = "Scalr";
repo = "scalr-cli";
rev = "v${version}";
hash = "sha256-W8Ug/Y5vF604qT9U2SWfYQZMUP4JOFdWAQNU3Yiu5mE=";
};
vendorHash = "sha256-TUf+0Z0yBDOpzMuETn+FCAPXWvQltjRhwQ3Xz0X6YOI=";
ldflags = [
"-s"
"-w"
];
preConfigure = ''
# Set the version.
substituteInPlace main.go --replace '"0.0.0"' '"${version}"'
'';
postInstall = ''
mv $out/bin/cli $out/bin/scalr
'';
doCheck = false; # Skip tests as they require creating actual Scalr resources.
meta = {
description = "Command-line tool that communicates directly with the Scalr API";
homepage = "https://github.com/Scalr/scalr-cli";
changelog = "https://github.com/Scalr/scalr-cli/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ dylanmtaylor ];
mainProgram = "scalr";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
llvmPackages,
python3,
}:
let
inherit (llvmPackages) clang-unwrapped;
in
python3.pkgs.buildPythonApplication rec {
pname = "scan-build-py";
inherit (clang-unwrapped) version;
format = "other";
src = clang-unwrapped + "/bin";
dontUnpack = true;
dependencies = with python3.pkgs; [
libscanbuild
];
installPhase = ''
mkdir -p "$out/bin"
install "$src/scan-build-py" "$out/bin/scan-build-py"
'';
makeWrapperArgs = [
"--prefix"
"PATH"
":"
(lib.makeBinPath [ clang-unwrapped ])
];
meta = {
description = "intercepts the build process to generate a compilation database";
homepage = "https://github.com/llvm/llvm-project/tree/llvmorg-${version}/clang/tools/scan-build-py/";
mainProgram = "scan-build-py";
license = with lib.licenses; [
asl20
llvm-exception
];
maintainers = with lib.maintainers; [ RossSmyth ];
platforms = lib.intersectLists python3.meta.platforms clang-unwrapped.meta.platforms;
};
}

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
dbus,
libconfuse,
libjpeg,
sane-backends,
systemd,
}:
stdenv.mkDerivation rec {
pname = "scanbd";
version = "1.5.1";
src = fetchurl {
sha256 = "0pvy4qirfjdfm8aj6x5rkbgl7hk3jfa2s21qkk8ic5dqfjjab75n";
url = "mirror://sourceforge/scanbd/${pname}-${version}.tgz";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
dbus
libconfuse
libjpeg
sane-backends
systemd
];
configureFlags = [
"--disable-Werror"
"--enable-udev"
"--with-scanbdconfdir=/etc/scanbd"
"--with-systemdsystemunitdir=$out/lib/systemd/system"
]
++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
# AC_FUNC_MALLOC is broken on cross builds.
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
enableParallelBuilding = true;
installFlags = [
"scanbdconfdir=$(out)/etc/scanbd"
"scannerconfdir=$(scanbdconfdir)/scanner.d"
];
doCheck = true;
meta = with lib; {
description = "Scanner button daemon";
longDescription = ''
scanbd polls a scanner's buttons, looking for button presses, function
knob changes, or other scanner events such as paper inserts and removals,
while at the same time allowing scan-applications to access the scanner.
Various actions can be submitted (scan, copy, email, ...) via action
scripts. The function knob values are passed to the action scripts as
well. Scan actions are also signaled via dbus. This can be useful for
foreign applications. Scans can also be triggered via dbus from foreign
applications.
On platforms which support signaling of dynamic device insertion/removal
(libudev, dbus, hal), scanbd supports this as well.
scanbd can use all sane-backends or some special backends from the (old)
scanbuttond project.
'';
homepage = "http://scanbd.sourceforge.net/";
downloadPage = "https://sourceforge.net/projects/scanbd/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,14 @@
diff --git a/configure.ac b/configure.ac
index f6ee0b9..378a3c9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -111,6 +111,9 @@ AS_IF([test "x$with_readline" != "xno"], [
])
])
+AM_GNU_GETTEXT_VERSION([0.25])
+AM_GNU_GETTEXT([external])
+
GETTEXT_PACKAGE=GameConqueror
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
gobject-introspection,
intltool,
wrapGAppsHook3,
procps,
python3,
readline,
}:
stdenv.mkDerivation rec {
pname = "scanmem";
version = "0.17";
src = fetchFromGitHub {
owner = "scanmem";
repo = "scanmem";
rev = "v${version}";
sha256 = "17p8sh0rj8yqz36ria5bp48c8523zzw3y9g8sbm2jwq7sc27i7s9";
};
patches = [
./gettext-0.25.patch
];
nativeBuildInputs = [
autoreconfHook
gobject-introspection
intltool
wrapGAppsHook3
];
buildInputs = [
readline
python3
];
configureFlags = [ "--enable-gui" ];
# we don't need to wrap the main executable, just the GUI
dontWrapGApps = true;
fixupPhase = ''
runHook preFixup
# replace the upstream launcher which does stupid things
# also add procps because it shells out to `ps` and expects it to be procps
makeWrapper ${python3}/bin/python3 $out/bin/gameconqueror \
"''${gappsWrapperArgs[@]}" \
--set PYTHONPATH "${python3.pkgs.makePythonPath [ python3.pkgs.pygobject3 ]}" \
--prefix PATH : "${procps}/bin" \
--add-flags "$out/share/gameconqueror/GameConqueror.py"
runHook postFixup
'';
meta = with lib; {
homepage = "https://github.com/scanmem/scanmem";
description = "Memory scanner for finding and poking addresses in executing processes";
maintainers = [ ];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View File

@@ -0,0 +1,64 @@
diff --git a/packages/server/src/api.js b/packages/server/src/api.js
index bd43842..71ce7c9 100644
--- a/packages/server/src/api.js
+++ b/packages/server/src/api.js
@@ -105,7 +105,7 @@ module.exports = new class Api {
}
// If not then it's possible the default image is not quite the correct aspect ratio
- const buffer = FileInfo.create(`${config.previewDirectory}/default.jpg`).toBuffer();
+ const buffer = FileInfo.create('NIX_OUT_PLACEHOLDER/lib/node_modules/scanservjs-api/data/preview/default.jpg').toBuffer();
try {
// We need to know the correct aspect ratio from the device
diff --git a/packages/server/src/application.js b/packages/server/src/application.js
index 2771036..0c2a4c0 100644
--- a/packages/server/src/application.js
+++ b/packages/server/src/application.js
@@ -26,7 +26,7 @@ module.exports = new class Application {
userOptions() {
if (this._userOptions === null) {
- this._userOptions = new UserOptions('../../config/config.local.js');
+ this._userOptions = new UserOptions(process.env.NIX_SCANSERVJS_CONFIG_PATH);
}
return this._userOptions;
}
diff --git a/packages/server/src/classes/user-options.js b/packages/server/src/classes/user-options.js
index f129e3c..c71e754 100644
--- a/packages/server/src/classes/user-options.js
+++ b/packages/server/src/classes/user-options.js
@@ -4,7 +4,7 @@ const path = require('path');
module.exports = class UserOptions {
constructor(localConfigPath) {
if (localConfigPath) {
- const localPath = path.join(__dirname, localConfigPath);
+ const localPath = localConfigPath;
if (fs.existsSync(localPath)) {
this.local = require(localPath);
}
diff --git a/packages/server/src/configure.js b/packages/server/src/configure.js
index c9e5ed8..484949c 100644
--- a/packages/server/src/configure.js
+++ b/packages/server/src/configure.js
@@ -71,6 +71,7 @@ function initialize(rootPath) {
try {
fs.mkdirSync(config.outputDirectory, { recursive: true });
+ fs.mkdirSync(config.previewDirectory, { recursive: true });
fs.mkdirSync(config.tempDirectory, { recursive: true });
} catch (exception) {
log.warn(`Error ensuring output and temp directories exist: ${exception}`);
diff --git a/packages/server/src/server.js b/packages/server/src/server.js
index e1a9fb0..3d58d37 100644
--- a/packages/server/src/server.js
+++ b/packages/server/src/server.js
@@ -5,7 +5,7 @@ const configure = require('./configure');
const config = application.config();
const app = express();
-app.use(express.static('client'));
+app.use(express.static('@client@'));
configure(app);

View File

@@ -0,0 +1,95 @@
{
lib,
fetchFromGitHub,
buildNpmPackage,
fetchNpmDeps,
nodejs_20,
replaceVars,
}:
let
# Build fails on node 22, presumably because of esm.
# https://github.com/NixOS/nixpkgs/issues/371649
nodejs = nodejs_20;
version = "2.27.1";
src = fetchFromGitHub {
owner = "sbs20";
repo = "scanservjs";
# rev = "v${version}";
# 2.27.1 doesn't have a tag
rev = "b15adc6f97fb152fd9819371bb1a9b8118baf55b";
hash = "sha256-ne9fEF/eurWPXzmJQzBn5jiy+JgxMWiCXsOdmu2fj6E=";
};
depsHashes = {
server = "sha256-M8t+TrE+ntZaI9X7hEel94bz34DPtW32n0KKMSoCfIs=";
client = "sha256-C31WBYE8ba0t4mfKFAuYWrCZtSdN7tQIYmCflDRKuBM=";
};
serverDepsForClient = fetchNpmDeps {
inherit src nodejs;
sourceRoot = "${src.name}/packages/server";
name = "scanservjs";
hash = depsHashes.server or lib.fakeHash;
};
# static client files
client = buildNpmPackage {
pname = "scanservjs-client";
inherit version src nodejs;
sourceRoot = "${src.name}/packages/client";
npmDepsHash = depsHashes.client or lib.fakeHash;
preBuild = ''
cd ../server
chmod +w package-lock.json . /build/source/
npmDeps=${serverDepsForClient} npmConfigHook
cd ../client
'';
env.NODE_OPTIONS = "--openssl-legacy-provider";
dontNpmInstall = true;
installPhase = ''
mv /build/source/dist/client $out
'';
};
in
buildNpmPackage {
pname = "scanservjs";
inherit version src nodejs;
sourceRoot = "${src.name}/packages/server";
npmDepsHash = depsHashes.server or lib.fakeHash;
# can't use "patches" since they change the server deps' hash for building the client
# (I don't want to maintain one more hash)
preBuild = ''
chmod +w /build/source
patch -p3 <${
replaceVars ./decouple-from-source-tree.patch {
inherit client;
}
}
substituteInPlace src/api.js --replace 'NIX_OUT_PLACEHOLDER' "$out"
'';
postInstall = ''
mkdir -p $out/bin
makeWrapper ${lib.getExe nodejs} $out/bin/scanservjs \
--set NODE_ENV production \
--add-flags "'$out/lib/node_modules/scanservjs-api/src/server.js'"
'';
meta = {
description = "SANE scanner nodejs web ui";
longDescription = "scanservjs is a simple web-based UI for SANE which allows you to share a scanner on a network without the need for drivers or complicated installation.";
homepage = "https://github.com/sbs20/scanservjs";
license = lib.licenses.gpl2Only;
mainProgram = "scanservjs";
maintainers = with lib.maintainers; [ chayleaf ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,85 @@
{
ansible-lint,
bats,
cmake-lint,
cmake,
fetchFromGitHub,
lib,
libxml2,
libxslt,
linkchecker,
openscap,
python3Packages,
stdenv,
shellcheck,
yamllint,
}:
stdenv.mkDerivation rec {
pname = "scap-security-guide";
version = "0.1.76";
src = fetchFromGitHub {
owner = "ComplianceAsCode";
repo = "content";
tag = "v${version}";
hash = "sha256-M1o9UG2pKtkFByp37UP++am8lJFfnoDBkRh1fos+ED0=";
};
postPatch = ''
substituteInPlace build-scripts/generate_guides.py \
--replace-fail "XCCDF_GUIDE_XSL = None" "XCCDF_GUIDE_XSL = \"${openscap}/share/openscap/xsl/xccdf-guide.xsl\""
'';
nativeBuildInputs =
with python3Packages;
[
setuptools
sphinx
sphinxcontrib-jinjadomain
sphinx-rtd-theme
sphinx-jinja
]
++ [
cmake-lint
cmake
];
buildInputs =
with python3Packages;
[
ansible
jinja2
json2html
myst-parser
mypy
openpyxl
pcre2-py
pygithub
pyyaml
pandas
pycompliance
prometheus-async
ruamel-yaml
voluptuous-stubs
yamllint
]
++ [
ansible-lint
bats
libxslt
libxml2
linkchecker
openscap
shellcheck
yamllint
];
meta = {
description = "Security automation content in SCAP, Bash, Ansible, and other formats";
homepage = "https://github.com/ComplianceAsCode/content";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ tochiaha ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,79 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
nix-update-script,
runCommand,
dieHook,
nixosTests,
testers,
scaphandre,
}:
rustPlatform.buildRustPackage rec {
pname = "scaphandre";
version = "1.0.2";
src = fetchFromGitHub {
owner = "hubblo-org";
repo = "scaphandre";
rev = "v${version}";
hash = "sha256-I+cECdpLoIj4yuWXfirwHlcn0Hkm9NxPqo/EqFiBObw=";
};
cargoHash = "sha256-OIoQ2r/T0ZglF1pe25ND8xe/BEWgP9JbWytJp4k7yyg=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
checkPhase = ''
runHook preCheck
# Work around to pass test due to non existing path
# https://github.com/hubblo-org/scaphandre/blob/v1.0.2/src/sensors/powercap_rapl.rs#L29
export SCAPHANDRE_POWERCAP_PATH="$(mktemp -d)/scaphandre"
mkdir -p "$SCAPHANDRE_POWERCAP_PATH"
runHook postCheck
'';
passthru = {
updateScript = nix-update-script { };
tests = {
stdout =
self:
runCommand "${pname}-test"
{
buildInputs = [
self
dieHook
];
}
''
${self}/bin/scaphandre stdout -t 4 > $out || die "Scaphandre failed to measure consumption"
[ -s $out ]
'';
vm = nixosTests.scaphandre;
version = testers.testVersion {
inherit version;
package = scaphandre;
command = "scaphandre --version";
};
};
};
meta = with lib; {
description = "Electrical power consumption metrology agent";
homepage = "https://github.com/hubblo-org/scaphandre";
license = licenses.asl20;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ gaelreyrol ];
mainProgram = "scaphandre";
# Upstream needs to decide what to do about a broken dependency
# https://github.com/hubblo-org/scaphandre/issues/403
broken = true;
};
}

1317
pkgs/by-name/sc/scarab/deps.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
{
lib,
bc,
buildDotnetModule,
fetchFromGitHub,
copyDesktopItems,
icoutils,
makeDesktopItem,
dotnetCorePackages,
}:
buildDotnetModule rec {
pname = "scarab";
version = "2.6.0.0";
src = fetchFromGitHub {
owner = "fifty-six";
repo = "scarab";
tag = "v${version}";
hash = "sha256-xnvS3FDY4hi3yauwoSzO1fO6tJJAwFCkAc0Wzfs/puQ=";
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
nugetDeps = ./deps.json;
projectFile = "Scarab/Scarab.csproj";
testProjectFile = "Scarab.Tests/Scarab.Tests.csproj";
executables = [ "Scarab" ];
runtimeDeps = [
bc
];
nativeBuildInputs = [
copyDesktopItems
icoutils
];
doCheck = true;
postFixup = ''
# Icons for the desktop file
icotool -x $src/Scarab/Assets/omegamaggotprime.ico
sizes=(256 128 64 48 32 16)
for i in ''${!sizes[@]}; do
size=''${sizes[$i]}x''${sizes[$i]}
install -D omegamaggotprime_''$((i+1))_''${size}x32.png $out/share/icons/hicolor/$size/apps/scarab.png
done
wrapProgram "$out/bin/Scarab" --run '. ${./scaling-settings.bash}'
'';
desktopItems = [
(makeDesktopItem {
desktopName = "Scarab";
name = "scarab";
exec = "Scarab";
icon = "scarab";
comment = "Hollow Knight mod installer and manager";
type = "Application";
categories = [ "Game" ];
})
];
passthru.updateScript = ./update.sh;
meta = {
description = "Hollow Knight mod installer and manager";
homepage = "https://github.com/fifty-six/Scarab";
downloadPage = "https://github.com/fifty-six/Scarab/releases";
changelog = "https://github.com/fifty-six/Scarab/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
huantian
sigmasquadron
];
mainProgram = "Scarab";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,24 @@
# Keep existing value if it is already non-empty
if [[ -z "${AVALONIA_GLOBAL_SCALE_FACTOR-}" ]] && command -v gsettings >/dev/null; then
echo 'Attempting to get GNOME desktop interface scaling factor' >&2
AVALONIA_GLOBAL_SCALE_FACTOR="$(gsettings get org.gnome.desktop.interface scaling-factor)"
AVALONIA_GLOBAL_SCALE_FACTOR="${AVALONIA_GLOBAL_SCALE_FACTOR##* }"
fi
if [[ "${AVALONIA_GLOBAL_SCALE_FACTOR-}" == "0" ]]; then
echo 'Unset invalid scaling value' >&2
unset AVALONIA_GLOBAL_SCALE_FACTOR
fi
if [[ -z "${AVALONIA_GLOBAL_SCALE_FACTOR-}" ]] && command -v xrdb >/dev/null; then
echo 'Attempting to get scaling factor from X FreeType DPI setting' >&2
dpi="$(xrdb -get Xft.dpi)"
if [[ -n "${dpi}" ]]; then
AVALONIA_GLOBAL_SCALE_FACTOR=$(echo "scale=2; ${dpi}/96" | bc)
fi
fi
if [[ -n "${AVALONIA_GLOBAL_SCALE_FACTOR-}" ]]; then
echo "Applying scale factor: ${AVALONIA_GLOBAL_SCALE_FACTOR}" >&2
export AVALONIA_GLOBAL_SCALE_FACTOR
fi

View File

@@ -0,0 +1,16 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq common-updater-scripts
set -euo pipefail
new_version="$(curl -s "https://api.github.com/repos/fifty-six/Scarab/releases?per_page=1" | jq -r '.[0].name')"
new_version=${new_version#"v"}
old_version="$(sed -nE 's/^\s*version = "([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)";$/\1/p' ./default.nix)"
if [[ "$new_version" == "$old_version" ]]; then
echo "Up to date"
exit 0
fi
update-source-version scarab "$new_version"
$(nix-build . -A scarab.fetch-deps --no-out-link)

View File

@@ -0,0 +1,63 @@
{
stdenv,
fetchFromGitHub,
alsa-lib,
openssl,
pkg-config,
lib,
unstableGitUpdater,
}:
let
firmwareSrc = fetchFromGitHub {
owner = "geoffreybennett";
repo = "scarlett2-firmware";
rev = "f628dfb4d2e874b2078dbb43e8c1d59dd6553dd1";
hash = "sha256-s61eyS47SuIbK9KR59XxHpybvl9tHFWPLkpHmdqwO24=";
};
in
stdenv.mkDerivation {
pname = "scarlett2";
version = "0-unstable-2024-04-06";
src = fetchFromGitHub {
owner = "geoffreybennett";
repo = "scarlett2";
rev = "1c262bcac11bceb6da8334b8f5b56d3c9331bfc8";
hash = "sha256-yhmXVfys300NwZ8UJ7WvOyNkGP3OkIVoRaToF+SenQA=";
};
buildInputs = [
alsa-lib
openssl
];
nativeBuildInputs = [ pkg-config ];
preBuild = ''
makeFlagsArray+=( PREFIX=$out )
'';
passthru.updateScript = unstableGitUpdater { };
# the program expects to find firmware files in a directory called "firmware" relative to the resolved path of the binary
postInstall = ''
mkdir -p $out/share
mv $out/bin/scarlett2 $out/share
ln -s $out/share/scarlett2 $out/bin/scarlett2
ln -s ${firmwareSrc}/firmware $out/share/firmware
'';
meta = {
description = "Firmware Management Utility for Scarlett 2nd, 3rd, and 4th Gen, Clarett USB, and Clarett+ interfaces";
homepage = "https://github.com/geoffreybennett/scarlett2";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ squalus ];
mainProgram = "scarlett2";
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "scc";
version = "3.5.0";
src = fetchFromGitHub {
owner = "boyter";
repo = "scc";
rev = "v${version}";
hash = "sha256-ec3k6NL3zTYvcJo0bR/BqdTu5br4vRZpgrBR6Kj5YxY=";
};
vendorHash = null;
# scc has a scripts/ sub-package that's for testing.
excludedPackages = [ "scripts" ];
meta = with lib; {
homepage = "https://github.com/boyter/scc";
description = "Very fast accurate code counter with complexity calculations and COCOMO estimates written in pure Go";
maintainers = with maintainers; [
sigma
Br1ght0ne
];
license = with licenses; [
mit
];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
openssl,
distributed ? false,
}:
rustPlatform.buildRustPackage (finalAttrs: {
version = "0.10.0";
pname = "sccache";
src = fetchFromGitHub {
owner = "mozilla";
repo = "sccache";
rev = "v${finalAttrs.version}";
sha256 = "sha256-VEDMeRFQKNPS3V6/DhMWxHR7YWsCzAXTzp0lO+COl08=";
};
cargoHash = "sha256-1kfKBN4uRbU5LjbC0cLgMqoGnOSEAdC0S7EzXlfaDPo=";
buildFeatures = lib.optionals distributed [
"dist-client"
"dist-server"
];
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
# Tests fail because of client server setup which is not possible inside the
# pure environment, see https://github.com/mozilla/sccache/issues/460
doCheck = false;
meta = {
description = "Ccache with Cloud Storage";
mainProgram = "sccache";
homepage = "https://github.com/mozilla/sccache";
changelog = "https://github.com/mozilla/sccache/releases/tag/v${finalAttrs.version}";
maintainers = with lib.maintainers; [
doronbehar
figsoda
];
license = lib.licenses.asl20;
};
})

View File

@@ -0,0 +1,51 @@
{
lib,
fetchFromGitHub,
# Pinned to Python 3.12 because future-1.0.0 is not supported for Python 3.13:
# error: future-1.0.0 not supported for interpreter python3.13
python312Packages,
}:
python312Packages.buildPythonApplication rec {
pname = "sccmhunter";
version = "1.1.10";
pyproject = true;
src = fetchFromGitHub {
owner = "garrettfoster13";
repo = "sccmhunter";
tag = "v${version}";
hash = "sha256-657xwD5Sk8vU3MSGj7Yuu/lh7SRS25VFk/igKhq1pks=";
};
build-system = with python312Packages; [
setuptools
];
dependencies = with python312Packages; [
cmd2
cryptography
impacket
ldap3
pandas
pyasn1
pyasn1-modules
requests
requests-ntlm
requests-toolbelt
rich
tabulate
typer
urllib3
pyopenssl
pycryptodome
];
meta = {
description = "Post exploitation tool to identify and attack SCCM related assets in an Active Directory domain";
homepage = "https://github.com/garrettfoster13/sccmhunter";
changelog = "https://github.com/garrettfoster13/sccmhunter/blob/${src.tag}/changelog.md";
license = lib.licenses.mit;
mainProgram = "sccmhunter.py";
maintainers = with lib.maintainers; [ purpole ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromSourcehut,
scdoc,
}:
stdenv.mkDerivation rec {
pname = "scd2html";
version = "1.0.0";
src = fetchFromSourcehut {
owner = "~bitfehler";
repo = "scd2html";
rev = "v${version}";
hash = "sha256-oZSHv5n/WOrvy77tC94Z8pYugLpHkcv7U1PrzR+8fHM=";
};
strictDeps = true;
nativeBuildInputs = [
scdoc
];
postPatch = ''
substituteInPlace Makefile \
--replace "LDFLAGS+=-static" "LDFLAGS+="
'';
makeFlags = [
"PREFIX=${placeholder "out"}"
];
enableParallelBuilding = true;
meta = with lib; {
description = "Generates HTML from scdoc source files";
homepage = "https://git.sr.ht/~bitfehler/scd2html";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.linux;
mainProgram = "scd2html";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "scdl";
version = "2.12.4";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-5+3ok7UcJEdUW45bdPGkkvk+k/NYIpEi0URNuQ6e0vk=";
};
build-system = [ python3Packages.setuptools ];
dependencies = with python3Packages; [
docopt-ng
mutagen
termcolor
requests
tqdm
pathvalidate
soundcloud-v2
filelock
];
# No tests in repository
doCheck = false;
pythonImportsCheck = [ "scdl" ];
meta = with lib; {
description = "Download Music from Soundcloud";
homepage = "https://github.com/flyingrub/scdl";
license = licenses.gpl2Only;
maintainers = [ ];
mainProgram = "scdl";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromSourcehut,
buildPackages,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scdoc";
version = "1.11.3";
src = fetchFromSourcehut {
owner = "~sircmpwn";
repo = "scdoc";
rev = finalAttrs.version;
hash = "sha256-MbLDhLn/JY6OcdOz9/mIPAQRp5TZ6IKuQ/FQ/R3wjGc=";
};
outputs = [
"out"
"man"
"dev"
];
postPatch = ''
substituteInPlace Makefile \
--replace "LDFLAGS+=-static" "LDFLAGS+="
'';
makeFlags = [
"PREFIX=${placeholder "out"}"
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
"HOST_SCDOC=${lib.getExe buildPackages.scdoc}"
];
doCheck = true;
meta = {
description = "Simple man page generator written in C99 for POSIX systems";
homepage = "https://git.sr.ht/~sircmpwn/scdoc";
changelog = "https://git.sr.ht/~sircmpwn/scdoc/refs/${finalAttrs.src.rev}";
license = lib.licenses.mit;
mainProgram = "scdoc";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,60 @@
diff --git a/pom.xml b/pom.xml
index 193f7ca..45faa1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -137,6 +137,55 @@
</plugins>
</pluginManagement>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <version>3.3.0</version>
+ <executions>
+ <execution>
+ <id>require-all-plugin-versions-to-be-set</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requirePluginVersions />
+ </rules>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>3.3.2</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>3.1.1</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>4.0.0-M13</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>3.1.1</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>3.2.5</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.3.0</version>
+ </plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>

View File

@@ -0,0 +1,106 @@
{
lib,
jdk21,
maven,
fetchFromGitHub,
makeDesktopItem,
copyDesktopItems,
glib,
makeWrapper,
wrapGAppsHook3,
}:
let
jdk = jdk21.override {
enableJavaFX = true;
};
in
maven.buildMavenPackage rec {
pname = "scenebuilder";
version = "21.0.1";
src = fetchFromGitHub {
owner = "gluonhq";
repo = "scenebuilder";
rev = version;
hash = "sha256-YEcW1yQK6RKDqSstsrpdOqMt972ZagenGDxcJ/gP+SA=";
};
patches = [
# makes the mvnHash platform-independent
./pom-remove-javafx.patch
# makes sure that maven upgrades don't change the mvnHash
./fix-default-maven-plugin-versions.patch
];
postPatch = ''
# set the build timestamp to $SOURCE_DATE_EPOCH
substituteInPlace app/pom.xml \
--replace-fail "\''${maven.build.timestamp}" "$(date -d "@$SOURCE_DATE_EPOCH" '+%Y-%m-%d %H:%M:%S')"
'';
mvnJdk = jdk;
mvnParameters = toString [
"-Dmaven.test.skip"
"-Dproject.build.outputTimestamp=1980-01-01T00:00:02Z"
];
mvnHash = "sha256-fS7dS2Q4ORThLBwDOzJJnRboNNRmhp0RG6Dae9fl+pw=";
nativeBuildInputs = [
copyDesktopItems
glib
makeWrapper
wrapGAppsHook3
];
dontWrapGApps = true; # prevent double wrapping
installPhase = ''
runHook preInstall
install -Dm644 app/target/lib/scenebuilder-${version}-SNAPSHOT-all.jar $out/share/scenebuilder/scenebuilder.jar
install -Dm644 app/src/main/resources/com/oracle/javafx/scenebuilder/app/SB_Logo.png $out/share/icons/hicolor/128x128/apps/scenebuilder.png
runHook postInstall
'';
postFixup = ''
makeWrapper ${jdk}/bin/java $out/bin/scenebuilder \
--add-flags "--add-modules javafx.web,javafx.fxml,javafx.swing,javafx.media" \
--add-flags "--add-opens=javafx.fxml/javafx.fxml=ALL-UNNAMED" \
--add-flags "-jar $out/share/scenebuilder/scenebuilder.jar" \
"''${gappsWrapperArgs[@]}"
'';
desktopItems = [
(makeDesktopItem {
name = "scenebuilder";
exec = "scenebuilder";
icon = "scenebuilder";
comment = "A visual, drag'n'drop, layout tool for designing JavaFX application user interfaces.";
desktopName = "Scene Builder";
mimeTypes = [
"application/java"
"application/java-vm"
"application/java-archive"
];
categories = [ "Development" ];
})
];
meta = with lib; {
changelog = "https://github.com/gluonhq/scenebuilder/releases/tag/${src.rev}";
description = "Visual, drag'n'drop, layout tool for designing JavaFX application user interfaces";
homepage = "https://gluonhq.com/products/scene-builder/";
license = licenses.bsd3;
mainProgram = "scenebuilder";
maintainers = with maintainers; [ wirew0rm ];
platforms = jdk.meta.platforms;
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # deps
];
};
}

View File

@@ -0,0 +1,28 @@
diff --git a/kit/pom.xml b/kit/pom.xml
index 644d36c..e4d91fb 100644
--- a/kit/pom.xml
+++ b/kit/pom.xml
@@ -11,23 +11,6 @@
</parent>
<dependencies>
- <!-- JavaFX -->
- <dependency>
- <groupId>org.openjfx</groupId>
- <artifactId>javafx-fxml</artifactId>
- <version>${javafx.version}</version>
- </dependency>
- <dependency>
- <groupId>org.openjfx</groupId>
- <artifactId>javafx-web</artifactId>
- <version>${javafx.version}</version>
- </dependency>
- <dependency>
- <groupId>org.openjfx</groupId>
- <artifactId>javafx-swing</artifactId>
- <version>${javafx.version}</version>
- </dependency>
-
<!-- Eclipse Aether -->
<dependency>
<groupId>org.eclipse.aether</groupId>

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
wlroots_0_19,
scdoc,
pkg-config,
wayland,
libdrm,
libxkbcommon,
pixman,
wayland-protocols,
libGL,
libgbm,
libxcb,
xcbutilwm,
validatePkgConfig,
testers,
wayland-scanner,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scenefx";
version = "0.4.1";
src = fetchFromGitHub {
owner = "wlrfx";
repo = "scenefx";
tag = finalAttrs.version;
hash = "sha256-XD5EcquaHBg5spsN06fPHAjVCb1vOMM7oxmjZZ/PxIE=";
};
strictDeps = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
validatePkgConfig
wayland-scanner
];
buildInputs = [
libdrm
libGL
libxkbcommon
libgbm
libxcb
xcbutilwm
pixman
wayland
wayland-protocols
wlroots_0_19
];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = {
description = "Drop-in replacement for the wlroots scene API that allows wayland compositors to render surfaces with eye-candy effects";
homepage = "https://github.com/wlrfx/scenefx";
license = lib.licenses.mit;
maintainers = [ ];
mainProgram = "scenefx";
pkgConfigModules = [ "scenefx" ];
platforms = lib.platforms.all;
};
})

177
pkgs/by-name/sc/scenic-view/deps.json generated Normal file
View File

@@ -0,0 +1,177 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://plugins.gradle.org/m2": {
"com/github/javaparser#javaparser-core/3.6.23": {
"jar": "sha256-Jd6Y4JulJ3cBiHFxQWx1BmsMkK4QyER5wIy62OwC2ko=",
"pom": "sha256-uS4cfUmFkaRUByoI4abESgjvT5YyH772jlPnQagyO84="
},
"com/github/javaparser#javaparser-parent/3.6.23": {
"pom": "sha256-RrplfMwXfcIrmXLTDq3vB+pK2Y7C2ZJ4mi2pyMaOEMY="
},
"com/github/javaparser#javaparser-symbol-solver-core/3.6.23": {
"jar": "sha256-xgZHY43ddl13bN0jDhzWlmT5BYVrnTUgHcpZFcHhhLM=",
"pom": "sha256-IxlhRqtmo5sFxOIsoQ3rcpbBvmPuI5Vpax21wO7ayiQ="
},
"com/github/javaparser#javaparser-symbol-solver-logic/3.6.23": {
"jar": "sha256-iUKL5AoLtSXiC5BwTUzmhE/Min2ePxCaSmIckIICKSo=",
"pom": "sha256-+c70XJwzh7J95a0unepGR18S5nLrMTuo2hl9n5KTuUs="
},
"com/github/javaparser#javaparser-symbol-solver-model/3.6.23": {
"jar": "sha256-Oyot02mnKEgZJIkaRC7gHztEFr9a84kGv+CXAEEHbRs=",
"pom": "sha256-l9XodywQqD1zerqsIXaufDIYN2FzS1Nshd66kOdsfV0="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/errorprone#error_prone_annotations/2.0.18": {
"jar": "sha256-y0z62HC/VjoHGZ8+vqV2Pw3sRA/NoLMYZAsf6qeIZWs=",
"pom": "sha256-kUQScZLW9hLCNmgl3OrrI7DVMTC4Pgvx/+EH0UcKhIc="
},
"com/google/errorprone#error_prone_parent/2.0.18": {
"pom": "sha256-zxSZVSebB9TxHoF5hcEWSmnpMNc9t0QbQ6bvU7vShsQ="
},
"com/google/gradle#osdetector-gradle-plugin/1.6.1": {
"jar": "sha256-N/Sm2S8lh2Ls9i/XcYZSK77LXaGyDevHj4NhuFbfDac=",
"pom": "sha256-i4MRE6lOCXvEnh7KTTJ/0iNAVwRU1Ey7ccJSuZ5sTD8="
},
"com/google/guava#guava-parent/23.4-jre": {
"pom": "sha256-EO8XbFPNj5Wd7Wr3QFFumbX8IKogHjqRmLuSGUpqOTQ="
},
"com/google/guava#guava/23.4-jre": {
"jar": "sha256-JmKjPwn+urUCPdv1J4DLjSpuDEmiTbgJStwOlEgBqBA=",
"pom": "sha256-Iuu7g72VwApr6oeMtbm7imAuoSpmRnsM+k+XtBTqXQ4="
},
"com/google/j2objc#j2objc-annotations/1.1": {
"jar": "sha256-KZSn63jycQvT07+2ObLJTiGc7awNTQhNUW54wW3d7PY=",
"pom": "sha256-8MmMVx6Tp8tN0Y3w+jCPCWPnoGIKwtQkTmHnCdA61r4="
},
"kr/motd/maven#os-maven-plugin/1.6.0": {
"jar": "sha256-HNnWwIn5ZnEbx9lWSXaz/+ZRAmFqUkdoHMIwlc+90aw=",
"pom": "sha256-zRUfUQeKRnd7UPgoO4gqis4MCLu+F0RrP56mPIEi/Kg="
},
"org/beryx#badass-jlink-plugin/2.6.5": {
"jar": "sha256-WXeNmHfVtqkDyRN2ZfzzSoHFprSdPDpxt70FDJVSWrA=",
"pom": "sha256-ytOd1e29JuGnOxYHCShfkLTAjwmT85n2Qsley3Bs4LQ="
},
"org/beryx/jlink#org.beryx.jlink.gradle.plugin/2.6.5": {
"pom": "sha256-n3jKnoCItgThUQZCBW3b+WsQZ+zn/SZuZwc/y/dsW/Y="
},
"org/codehaus#codehaus-parent/4": {
"pom": "sha256-a4cjfejC4XQM+AYnx/POPhXeGTC7JQxVoeypT6PgFN8="
},
"org/codehaus/mojo#animal-sniffer-annotations/1.14": {
"jar": "sha256-IGgyC9a610TDZzqwSPZ+ML749RiZb6OAAzVWYAZpkF0=",
"pom": "sha256-GHnxmgWZHj7ZWRC5ZokzM5awxGeiFdxNH5ABhAS3KiY="
},
"org/codehaus/mojo#animal-sniffer-parent/1.14": {
"pom": "sha256-9RVQoGsUEL1JYssOcd8Lkhpgp+9Hv6nEgloUvnIxbuo="
},
"org/codehaus/mojo#mojo-parent/34": {
"pom": "sha256-Pjldb7xDwJo3dMrIaUzlJzmDBeo/1UktgOJa8n04Kpw="
},
"org/javamodularity#moduleplugin/1.4.0": {
"jar": "sha256-DsRpRPMp5s7qu+4mT39lW3VOz+qXti1zeROvm/cnWkk=",
"pom": "sha256-ys6MmZmVjsvuHC00/yZVxHvgOrtlFInDustCNl+e33s="
},
"org/javassist#javassist/3.23.1-GA": {
"jar": "sha256-0rFMCXY1IzdGJPMqCdbjH8sXQIKpet21ri1YC0dP2AY=",
"pom": "sha256-TBjLCfVKXn3uusVCUbXsZaXgSuRgZ/Mb3OMzwvDujJk="
},
"org/openjfx#javafx-plugin/0.0.7": {
"jar": "sha256-cMNMLi/MFLDiEkJuYhbX7xktB+i4fw3O8y1drZ+6tK0=",
"pom": "sha256-JVTXrl0EsYMJcp5LkHmy8iQKXTfr1GxrC97HZ8q/svk="
},
"org/openjfx/javafxplugin#org.openjfx.javafxplugin.gradle.plugin/0.0.7": {
"pom": "sha256-SybdZ/HqOekf+cyybnONJwR1DlhFYYajVz9QadOIe1U="
},
"org/ow2#ow2/1.5": {
"pom": "sha256-D4obEW52C4/mOJxRuE5LB6cPwRCC1Pk25FO1g91QtDs="
},
"org/ow2/asm#asm-analysis/7.0": {
"jar": "sha256-6YH49lDE2QC7AzZQsY4SL6axYerdX4iXjQh1H3LuhHQ=",
"pom": "sha256-xrVEd+nVuuHnrd/y4ky/kqr/L/CP1rwFlsOTPD+twss="
},
"org/ow2/asm#asm-commons/7.0": {
"jar": "sha256-/tNI7wWVjj6EajrAdKEq9feTbvPSHORKYsT6CKdxkn0=",
"pom": "sha256-9MaXiGzbSlskcgVKC140Nx6bSOYgvkDD7Ujh9LbVHrQ="
},
"org/ow2/asm#asm-tree/7.0": {
"jar": "sha256-z9egh0+d42qZnBJ/7q37/m4E1Kce6VTXrz2FPwvkimw=",
"pom": "sha256-05590S9P9TWgg50ZScOcdkQ1WkRwIgyUt2pcFoxXoGg="
},
"org/ow2/asm#asm-util/7.0": {
"jar": "sha256-dfu8pEDvRj9BwrCrGoCr5n6RCsSG2mCnhjy8tbrn4UU=",
"pom": "sha256-4HvOS7VdWgb0wQ2RL8ne6Km5wE7FSbu4208g2zRwb3U="
},
"org/ow2/asm#asm/7.0": {
"jar": "sha256-uI72ZGizyXitDJf9bpCXnlYVW0rGkIm6ekTpqn/+ms8=",
"pom": "sha256-g/ZbEIPVzk+Lp/lUXP6f8XgkWJyafMgsOkaVgB5PX2g="
},
"org/slf4j#slf4j-api/1.7.25": {
"jar": "sha256-GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
"pom": "sha256-fNnXoLXZPf1GGhSIkbQ1Cc9AOpx/n7SQYNNVTfHIHh4="
},
"org/slf4j#slf4j-parent/1.7.25": {
"pom": "sha256-GPXFISDbA26I1hNviDnIMtB0vdqVx1bG9CkknS21SsY="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://repo.maven.apache.org/maven2/org": {
"openjfx#javafx-base/11.0.2": {
"jar": "sha256-Hy+IiY9U8aKeK1jKrrChEFBZigdSTyls2a72wAu5PQ8=",
"pom": "sha256-F/QWaIULgDukqDp+LZYDm2nwcniLvbqI4J/sgVegMpw="
},
"openjfx#javafx-base/11.0.2/linux": {
"jar": "sha256-hMNW8TRL/TqnS1WiOgzgeLTF5qm+iFPajeQV5ez81Bs="
},
"openjfx#javafx-controls/11.0.2": {
"jar": "sha256-YBBsLPUqfzHsobjQipUs9Lk7Wx2FSSp1XpeggIpp/5o=",
"pom": "sha256-WI5hxbroHQl2C2DYz7E7ERtC09RwwKCpnaBqtq/XjQM="
},
"openjfx#javafx-controls/11.0.2/linux": {
"jar": "sha256-wXIELPTOd/xon61lWSVrEbmcb7ic5f0bM9/DRLhqCpc="
},
"openjfx#javafx-fxml/11.0.2": {
"pom": "sha256-hqY8PXMIR6kmAEQ3YosWH88GXj0vrzSjwTjK4j3FDxg="
},
"openjfx#javafx-fxml/11.0.2/linux": {
"jar": "sha256-IsRLJbxYjfZiPgT6EnuLyCQj8flI6a/ySFr0pokOL5Q="
},
"openjfx#javafx-graphics/11.0.2": {
"jar": "sha256-3ukAoYanC66CZoRcVrA62aJOaXy1K6PaQhxgSQibNjg=",
"pom": "sha256-5O3+os2WNa3JLTqbp81ew6VqsbF+pKJWDRIr+97gU8g="
},
"openjfx#javafx-graphics/11.0.2/linux": {
"jar": "sha256-+yCVZOUN49jQVdmzzWnUahbT7xjsVRYvwTANFAip1QI="
},
"openjfx#javafx-media/11.0.2": {
"jar": "sha256-buLos8kx27mNmLuVqoIDP9tvQ839Vp5gYT21g0Yp0CU=",
"pom": "sha256-ea0fX/vvejwnrd8jvXYICIN23mLl1w/tQRKKMu0f0Ps="
},
"openjfx#javafx-media/11.0.2/linux": {
"jar": "sha256-SQgWhhxhQ6jpPDBRreX/ZcJ8h5zE0lSZmBQ3RnZDF9Y="
},
"openjfx#javafx-swing/11.0.2": {
"pom": "sha256-huvlJlgb5jeG3hJxPMFL23wVAwzPacjJ7lluwyUtB7M="
},
"openjfx#javafx-swing/11.0.2/linux": {
"jar": "sha256-5WLb2tBbKGTo3F75chsMmiyxcxWdpElqJ4K4zR5lsUw="
},
"openjfx#javafx-web/11.0.2": {
"pom": "sha256-VPT4QZplXM2lGzDG+canNTR6h9myctpnwMndXps/UcU="
},
"openjfx#javafx-web/11.0.2/linux": {
"jar": "sha256-FWUzbTr1okARbBPkPepcPZpnSWMnuCj6EL9n6unlsa8="
},
"openjfx#javafx/11.0.2": {
"pom": "sha256-vGfwPQ2VsXURSpjv/7E+RORq2eOsGe/w6OBjpudnWtg="
}
}
}

View File

@@ -0,0 +1,91 @@
{
lib,
stdenv,
fetchFromGitHub,
openjdk,
openjfx,
gradle_7,
makeDesktopItem,
makeWrapper,
}:
let
jdk = openjdk.override (
lib.optionalAttrs stdenv.hostPlatform.isLinux {
enableJavaFX = true;
openjfx_jdk = openjfx.override { withWebKit = true; };
}
);
pname = "scenic-view";
version = "11.0.2";
src = fetchFromGitHub {
owner = "JonathanGiles";
repo = "scenic-view";
rev = version;
sha256 = "1idfh9hxqs4fchr6gvhblhvjqk4mpl4rnpi84vn1l3yb700z7dwy";
};
gradle = gradle_7;
desktopItem = makeDesktopItem {
name = "scenic-view";
desktopName = "scenic-view";
exec = "scenic-view";
comment = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications.";
mimeTypes = [
"application/java"
"application/java-vm"
"application/java-archive"
];
categories = [ "Development" ];
};
in
stdenv.mkDerivation rec {
inherit pname version src;
nativeBuildInputs = [
gradle
makeWrapper
];
mitmCache = gradle.fetchDeps {
inherit pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
doCheck = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/scenic-view
cp build/libs/scenicview.jar $out/share/scenic-view/scenic-view.jar
makeWrapper ${jdk}/bin/java $out/bin/scenic-view --add-flags "-jar $out/share/scenic-view/scenic-view.jar"
runHook postInstall
'';
desktopItems = [ desktopItem ];
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
description = "JavaFx application to visualize and modify the scenegraph of running JavaFx applications";
mainProgram = "scenic-view";
longDescription = ''
A JavaFX application designed to make it simple to understand the current state of your application scenegraph
and to also easily manipulate properties of the scenegraph without having to keep editing your code.
This lets you find bugs and get things pixel perfect without having to do the compile-check-compile dance.
'';
homepage = "https://github.com/JonathanGiles/scenic-view/";
sourceProvenance = with sourceTypes; [
fromSource
binaryBytecode # deps
];
license = licenses.gpl3Plus;
maintainers = with maintainers; [ wirew0rm ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "schedtool";
version = "1.3.0";
src = fetchFromGitHub {
owner = "freequaos";
repo = "schedtool";
rev = "schedtool-${finalAttrs.version}";
hash = "sha256-1987n2JilQlNJAc7KhxUe4W7kK0Dqgal6wGo5KwzvPE=";
};
# Fix build with GCC 13
postPatch = ''
substituteInPlace schedtool.c \
--replace-fail 'TAB[policy] : policy' 'TAB[policy] : (char*)(intptr_t)policy'
'';
makeFlags = [
"DESTDIR=$(out)"
"DESTPREFIX="
];
meta = {
description = "Query or alter a process' scheduling policy under Linux";
mainProgram = "schedtool";
homepage = "https://github.com/freequaos/schedtool";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,63 @@
{
lib,
stdenvNoCC,
fetchzip,
version ? "2.100",
}:
let
new = lib.versionAtLeast version "3.000";
hash =
{
"2.100" = "sha256-d2UyOOOnmE1afCwyIrM1bL3lQC7XRwh03hzetk/4V30=";
"3.300" = "sha256-LaaA6DWAE2dcwVVX4go9cJaiuwI6efYbPk82ym3W3IY=";
"4.000" = "sha256-FhgHlHCfojIl3Y11EDYhNTmLYwQ60OrwnA9nbZbZGJE=";
"4.300" = "sha256-djUZyBJaX6cFG4SYn+HIldNhRQ4Hg+Jt3uDfYzo9H5o=";
"4.400" = "sha256-76CQvy17lvzjVFICtrGU4DdT6u1nSPdSNkec2FcTwGw=";
}
."${version}";
pname = "scheherazade${lib.optionalString new "-new"}";
in
stdenvNoCC.mkDerivation rec {
inherit pname version;
src = fetchzip {
url = "http://software.sil.org/downloads/r/scheherazade/Scheherazade${lib.optionalString new "New"}-${version}.zip";
inherit hash;
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/truetype
install -Dm644 FONTLOG.txt README.txt -t $out/share/doc
cp -r documentation $out/share/doc/
runHook postInstall
'';
meta = with lib; {
homepage = "https://software.sil.org/scheherazade/";
description = "Font designed in a similar style to traditional Naskh typefaces";
longDescription = ''
Scheherazade${lib.optionalString new " New"}, named after the heroine of
the classic Arabian Nights tale, is designed in a similar style to
traditional typefaces such as Monotype Naskh, extended to cover the
Unicode Arabic repertoire through Unicode ${if new then "14.0" else "8.0"}.
Scheherazade provides a simplified rendering of Arabic script, using
basic connecting glyphs but not including a wide variety of additional
ligatures or contextual alternates (only the required lam-alef
ligatures). This simplified style is often preferred for clarity,
especially in non-Arabic languages, but may not be considered appropriate
in situations where a more elaborate style of calligraphy is preferred.
This package contains the regular and bold styles for the Scheherazade
font family, along with documentation.
'';
downloadPage = "https://software.sil.org/scheherazade/download/";
license = licenses.ofl;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenvNoCC,
fetchurl,
makeWrapper,
perlPackages,
}:
stdenvNoCC.mkDerivation rec {
pname = "schema2ldif";
version = "1.3";
src = fetchurl {
url = "https://repos.fusiondirectory.org/sources/schema2ldif/schema2ldif-${version}.tar.gz";
hash = "sha256-KmXdqVuINUnJ6EF5oKgk6BsT3h5ebVqss7aCl3pPjQE=";
};
postPatch = ''
# Removes the root check and changes the temporary location
# from the nix store to $PWD
sed -i \
-e '/You have to run this script as root/d' \
-e 's|/\^(\.\*)\\\.schema\$/|/.*\\/(.*)\\.schema$/|g' \
bin/ldap-schema-manager
'';
buildInputs = [ perlPackages.perl ];
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin $out/share/man/man1
cp bin/{schema2ldif,ldap-schema-manager} $out/bin
gzip -c man/schema2ldif.1 > $out/share/man/man1/schema2ldif.1.gz
gzip -c man/ldap-schema-manager.1 > $out/share/man/man1/ldap-schema-manager.1.gz
wrapProgram $out/bin/schema2ldif \
--prefix PERL5PATH : "${perlPackages.makePerlPath [ perlPackages.GetoptLong ]}"
'';
meta = with lib; {
description = "Utilities to manage schema in .schema and .ldif format";
homepage = "https://www.fusiondirectory.org/schema2ldif-project-and-components/";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ das_j ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchzip,
jre,
makeWrapper,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "schemacrawler";
version = "16.28.3";
src = fetchzip {
url = "https://github.com/schemacrawler/SchemaCrawler/releases/download/v${finalAttrs.version}/schemacrawler-${finalAttrs.version}-bin.zip";
hash = "sha256-OtQYAJe5eHoEis8Azy1LPxJdZR4HlKn8UhlDglqarto=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r {config,lib} $out/
makeWrapper ${jre}/bin/java $out/bin/schemacrawler \
--add-flags "-cp $out/lib/*:$out/config" \
--add-flags schemacrawler.Main
runHook postInstall
'';
preferLocalBuild = true;
meta = with lib; {
description = "Database schema discovery and comprehension tool";
mainProgram = "schemacrawler";
homepage = "https://www.schemacrawler.com/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = with licenses; [
epl10
gpl3Only
lgpl3Only
];
platforms = platforms.unix;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkg-config,
openssl,
}:
let
version = "0.4.3";
in
rustPlatform.buildRustPackage rec {
pname = "schemamap";
inherit version;
src = fetchFromGitHub {
owner = "schemamap";
repo = "schemamap";
rev = "v${version}";
hash = "sha256-YR7Ucd8/Z1hOUNokmfSVP2ZxDL7qLb6SZ86/S7V/GKk=";
};
sourceRoot = "${src.name}/rust";
cargoHash = "sha256-8UmLAT7Etb9MARoGhvOHPhkdR/8jCEAjAK/mWRHL9hk=";
buildInputs = [ openssl ];
nativeBuildInputs = [ pkg-config ];
meta = {
changelog = "https://github.com/schemamap/schemamap/releases/tag/v${version}";
description = "Instant batch data import for Postgres";
homepage = "https://schemamap.io";
license = lib.licenses.mit;
mainProgram = "schemamap";
maintainers = with lib.maintainers; [ thenonameguy ];
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
fetchFromGitHub,
graphviz,
jre,
makeWrapper,
maven,
nix-update-script,
}:
maven.buildMavenPackage rec {
pname = "schemaspy";
version = "7.0.2";
src = fetchFromGitHub {
owner = "schemaspy";
repo = "schemaspy";
tag = "v${version}";
hash = "sha256-X85Yv6yx1Hpl3vNDHtv6u38Err668dkAx1lqpoGnALg=";
};
mvnParameters = "-Dmaven.test.skip=true -Dmaven.buildNumber.skip=true";
mvnHash = "sha256-sCVWNzh8m3KvJyYzE2Mn+gbJTSt1/yX44dE4s7HkygU=";
nativeBuildInputs = [
makeWrapper
];
installPhase = ''
runHook preInstall
install -D target/${pname}-${version}-app.jar $out/share/java/${pname}-${version}.jar
makeWrapper ${jre}/bin/java $out/bin/schemaspy \
--add-flags "-jar $out/share/java/${pname}-${version}.jar" \
--prefix PATH : ${lib.makeBinPath [ graphviz ]}
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://schemaspy.org";
description = "Document your database simply and easily";
mainProgram = "schemaspy";
license = lib.licenses.lgpl3Plus;
maintainers = with lib.maintainers; [
jraygauthier
anthonyroussel
];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "schemat";
version = "0.4.7";
src = fetchFromGitHub {
owner = "raviqqe";
repo = "schemat";
tag = "v${finalAttrs.version}";
hash = "sha256-veGrwwERnMy+60paF/saEbVxTDyqNVT1hsfggGCzZt0=";
};
cargoHash = "sha256-R43i06XW3DpP+6fPUo/CZhKOVXMyoTPuygJ01BpW1/I=";
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Code formatter for Scheme, Lisp, and any S-expressions";
homepage = "https://github.com/raviqqe/schemat";
changelog = "https://github.com/raviqqe/schemat/releases/tag/v${finalAttrs.version}";
license = lib.licenses.unlicense;
maintainers = with lib.maintainers; [ bddvlpr ];
mainProgram = "schemat";
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
guile,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "scheme-bytestructures";
version = "2.0.2";
src = fetchFromGitHub {
owner = "TaylanUB";
repo = "scheme-bytestructures";
rev = "v${version}";
sha256 = "sha256-7FK1dXD1Qz6fFYjNUtHMaDGaezHLVaDvdgOboNNw0Lc=";
};
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
guile
pkg-config
];
buildInputs = [
guile
];
doCheck = true;
makeFlags = [ "GUILE_AUTO_COMPILE=0" ];
# In procedure bytevector-u8-ref: Argument 2 out of range
dontStrip = stdenv.hostPlatform.isDarwin;
meta = with lib; {
description = "Structured access to bytevector contents";
homepage = "https://github.com/TaylanUB/scheme-bytestructures";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ethancedwards8 ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
unstableGitUpdater,
}:
stdenvNoCC.mkDerivation {
pname = "scheme-manpages";
version = "0-unstable-2024-02-11";
src = fetchFromGitHub {
owner = "schemedoc";
repo = "manpages";
rev = "1ef440525db569799774c83634d28bfa630358da";
hash = "sha256-ZBovG9i0qKD6dP4qcLP1T1fke0hC8MmRjZRzxuojd60=";
};
dontBuild = true;
installPhase = ''
mkdir -p $out/share/man
cp -r man3/ man7/ $out/share/man/
'';
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "Unix manual pages for R6RS and R7RS";
homepage = "https://github.com/schemedoc/manpages";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "scheme48";
version = "1.9.3";
src = fetchurl {
url = "https://s48.org/${version}/scheme48-${version}.tgz";
sha256 = "bvWp8/yhQRCw+DG0WAHRH5vftnmdl2qhLk+ICdrzkEw=";
};
# Make more reproducible by removing build user and date.
postPatch = ''
substituteInPlace build/build-usual-image --replace '"(made by $USER on $date)"' '""'
'';
# Silence warnings related to use of implicitly declared library functions and implicit ints.
# TODO: Remove and/or fix with patches the next time this package is updated.
env = lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = toString [
"-Wno-error=implicit-function-declaration"
"-Wno-error=implicit-int"
];
};
# Don't build or install documentation, which depends on pdflatex,
# tex2page, and probably other things for which there is no nixpkgs
# derivation available
buildPhase = ''
runHook preBuild
make vm image libscheme48 script-interpreter go
runHook postBuild
'';
installTargets = "install-no-doc";
meta = with lib; {
homepage = "https://s48.org/";
description = "Scheme 48 interpreter for R5RS";
platforms = platforms.unix;
license = licenses.bsd3;
maintainers = [ maintainers.siraben ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitLab,
appstream-glib,
desktop-file-utils,
glib,
gtk4,
gtksourceview5,
libadwaita,
libpanel,
meson,
ninja,
pkg-config,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "schemes";
version = "46.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "chergert";
repo = "schemes";
rev = version;
hash = "sha256-m82jR958f1g/4gSJ4NbNa4fwxVseH399Z8JpWr7tLh8=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
appstream-glib
desktop-file-utils
];
buildInputs = [
glib
gtk4
libadwaita
gtksourceview5
libpanel
];
meta = with lib; {
description = "Edit GtkSourceView style-schemes for an application or platform";
mainProgram = "schemes";
homepage = "https://gitlab.gnome.org/chergert/schemes";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ _0xMRTT ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
alsa-lib,
perl,
pkg-config,
SDL2,
libX11,
libXext,
utf8proc,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "schismtracker";
version = "20250825";
src = fetchFromGitHub {
owner = "schismtracker";
repo = "schismtracker";
tag = version;
hash = "sha256-R1u0ZIWt4sG9cVhG9WhLdYVwAy7u62AT7E4ZwiTw1rY=";
};
# If we let it try to get the version from git, it will fail and fall back
# on running `date`, which will output the epoch, which is considered invalid
# in this assert: https://github.com/schismtracker/schismtracker/blob/a106b57e0f809b95d9e8bcf5a3975d27e0681b5a/schism/version.c#L112
postPatch = ''
substituteInPlace configure.ac \
--replace-fail 'git log' 'echo ${version} #'
'';
configureFlags = [
(lib.enableFeature true "dependency-tracking")
(lib.withFeature true "sdl2")
(lib.enableFeature true "sdl2-linking")
]
++ lib.optionals stdenv.hostPlatform.isLinux [
(lib.enableFeature true "alsa")
(lib.enableFeature true "alsa-linking")
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(lib.enableFeature false "sdltest")
];
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
perl
pkg-config
];
buildInputs = [
SDL2
libX11
utf8proc
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
libXext
];
enableParallelBuilding = true;
# Our Darwin SDL2 doesn't have a SDL2main to link against
preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace configure.ac \
--replace '-lSDL2main' '-lSDL2'
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Music tracker application, free reimplementation of Impulse Tracker";
homepage = "https://schismtracker.org/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ ftrvxmtrx ];
mainProgram = "schismtracker";
};
}

View File

@@ -0,0 +1,4 @@
source "https://rubygems.org"
gem "schleuder-cli", git: "https://0xacab.org/schleuder/schleuder-cli", tag: "schleuder-cli-0.2.0"

View File

@@ -0,0 +1,22 @@
GIT
remote: https://0xacab.org/schleuder/schleuder-cli
revision: fd010d28b1503504056e714e03abf043b64794ea
tag: schleuder-cli-0.2.0
specs:
schleuder-cli (0.2.0)
thor (~> 1)
GEM
remote: https://rubygems.org/
specs:
thor (1.3.1)
PLATFORMS
aarch64-linux
x86_64-linux
DEPENDENCIES
schleuder-cli!
BUNDLED WITH
2.5.9

View File

@@ -0,0 +1,25 @@
{
schleuder-cli = {
dependencies = [ "thor" ];
groups = [ "default" ];
platforms = [ ];
source = {
fetchSubmodules = false;
rev = "fd010d28b1503504056e714e03abf043b64794ea";
sha256 = "1r8ayi0d00c14q40247rwjf5s5n3dsy9d9blhf5jzm3kddzpwnbx";
type = "git";
url = "https://0xacab.org/schleuder/schleuder-cli";
};
version = "0.2.0";
};
thor = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
type = "gem";
};
version = "1.3.1";
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
bundlerApp,
ruby,
bundlerUpdateScript,
}:
bundlerApp {
inherit ruby;
pname = "schleuder-cli";
gemdir = ./.;
installManpages = false;
exes = [
"schleuder-cli"
];
passthru.updateScript = bundlerUpdateScript "schleuder-cli";
meta = with lib; {
description = "Command line tool to create and manage schleuder-lists";
longDescription = ''
Schleuder-cli enables creating, configuring, and deleting lists,
subscriptions, keys, etc. It uses the Schleuder API, provided by
schleuder-api-daemon (part of Schleuder).
'';
homepage = "https://schleuder.org";
changelog = "https://0xacab.org/schleuder/schleuder-cli/-/blob/main/CHANGELOG.md";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hexa ];
};
}

View File

@@ -0,0 +1,4 @@
source 'https://rubygems.org' do
gem 'schleuder'
gem 'net-smtp'
end

View File

@@ -0,0 +1,91 @@
GEM
specs:
GEM
remote: https://rubygems.org/
specs:
activemodel (6.1.7.7)
activesupport (= 6.1.7.7)
activerecord (6.1.7.7)
activemodel (= 6.1.7.7)
activesupport (= 6.1.7.7)
activesupport (6.1.7.7)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
bcrypt (3.1.20)
charlock_holmes (0.7.9)
concurrent-ruby (1.3.1)
daemons (1.4.1)
eventmachine (1.2.7)
gpgme (2.0.24)
mini_portile2 (~> 2.7)
i18n (1.14.5)
concurrent-ruby (~> 1.0)
mail (2.7.1)
mini_mime (>= 0.1.1)
mail-gpg (0.4.4)
gpgme (~> 2.0, >= 2.0.2)
mail (~> 2.5, >= 2.5.3)
mini_mime (1.1.5)
mini_portile2 (2.8.6)
minitest (5.23.1)
multi_json (1.15.0)
mustermann (2.0.2)
ruby2_keywords (~> 0.0.1)
net-protocol (0.2.2)
timeout
net-smtp (0.5.0)
net-protocol
rack (2.2.9)
rack-protection (2.2.4)
rack
rake (13.2.1)
ruby2_keywords (0.0.5)
schleuder (4.0.3)
activerecord (~> 6.1.3)
bcrypt (~> 3.1.2)
charlock_holmes (~> 0.7.6)
gpgme (~> 2.0, >= 2.0.19)
mail (~> 2.7.1)
mail-gpg (~> 0.3)
rake (>= 10.5.0)
sinatra (~> 2)
sinatra-contrib (~> 2)
sqlite3 (~> 1.4.2)
thin (~> 1)
thor (~> 0)
sinatra (2.2.4)
mustermann (~> 2.0)
rack (~> 2.2)
rack-protection (= 2.2.4)
tilt (~> 2.0)
sinatra-contrib (2.2.4)
multi_json
mustermann (~> 2.0)
rack-protection (= 2.2.4)
sinatra (= 2.2.4)
tilt (~> 2.0)
sqlite3 (1.4.4)
thin (1.8.2)
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (0.20.3)
tilt (2.3.0)
timeout (0.4.1)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
zeitwerk (2.6.15)
PLATFORMS
x86_64-linux
DEPENDENCIES
net-smtp!
schleuder!
BUNDLED WITH
2.5.9

View File

@@ -0,0 +1,388 @@
{
activemodel = {
dependencies = [ "activesupport" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0zz32997k2fsyd0fzrh8f79yjr6hv3i4j9wykkxncl02j8dhrkay";
type = "gem";
};
version = "6.1.7.7";
};
activerecord = {
dependencies = [
"activemodel"
"activesupport"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0qzymgyrvw2k32ldabp2jr0zgp6z9w8smyb946qgvs9zfs4n2qnn";
type = "gem";
};
version = "6.1.7.7";
};
activesupport = {
dependencies = [
"concurrent-ruby"
"i18n"
"minitest"
"tzinfo"
"zeitwerk"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0r2i9b0pm0b1dy8fc7kyls1g7f0bcnyq53v825rykibzdqfqdfgp";
type = "gem";
};
version = "6.1.7.7";
};
bcrypt = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "16a0g2q40biv93i1hch3gw8rbmhp77qnnifj1k0a6m7dng3zh444";
type = "gem";
};
version = "3.1.20";
};
charlock_holmes = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1c1dws56r7p8y363dhyikg7205z59a3bn4amnv2y488rrq8qm7ml";
type = "gem";
};
version = "0.7.9";
};
concurrent-ruby = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1kmhr3pz2nmhnq0nqlicqfwfmkzkcl835g7sw1gjjhjvhz8g2sf3";
type = "gem";
};
version = "1.3.1";
};
daemons = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "07cszb0zl8mqmwhc8a2yfg36vi6lbgrp4pa5bvmryrpcz9v6viwg";
type = "gem";
};
version = "1.4.1";
};
eventmachine = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
type = "gem";
};
version = "1.2.7";
};
gpgme = {
dependencies = [ "mini_portile2" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0r1vmql7w7ka5xzj1aqf8pk2a4sv0znwj2zkg1fgvd5b89qcvv2k";
type = "gem";
};
version = "2.0.24";
};
i18n = {
dependencies = [ "concurrent-ruby" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
type = "gem";
};
version = "1.14.5";
};
mail = {
dependencies = [ "mini_mime" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
type = "gem";
};
version = "2.7.1";
};
mail-gpg = {
dependencies = [
"gpgme"
"mail"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1rz936m8nacy7agksvpvkf6b37d1h5qvh5xkrjqvv5wbdqs3cyfj";
type = "gem";
};
version = "0.4.4";
};
mini_mime = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
type = "gem";
};
version = "1.1.5";
};
mini_portile2 = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
type = "gem";
};
version = "2.8.6";
};
minitest = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
type = "gem";
};
version = "5.23.1";
};
multi_json = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
type = "gem";
};
version = "1.15.0";
};
mustermann = {
dependencies = [ "ruby2_keywords" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0m70qz27mlv2rhk4j1li6pw797gmiwwqg02vcgxcxr1rq2v53rnb";
type = "gem";
};
version = "2.0.2";
};
net-protocol = {
dependencies = [ "timeout" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
type = "gem";
};
version = "0.2.2";
};
net-smtp = {
dependencies = [ "net-protocol" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0amlhz8fhnjfmsiqcjajip57ici2xhw089x7zqyhpk51drg43h2z";
type = "gem";
};
version = "0.5.0";
};
rack = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0hj0rkw2z9r1lcg2wlrcld2n3phwrcgqcp7qd1g9a7hwgalh2qzx";
type = "gem";
};
version = "2.2.9";
};
rack-protection = {
dependencies = [ "rack" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1d6irsigm0i4ig1m47c94kixi3wb8jnxwvwkl8qxvyngmb73srl2";
type = "gem";
};
version = "2.2.4";
};
rake = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
type = "gem";
};
version = "13.2.1";
};
ruby2_keywords = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
type = "gem";
};
version = "0.0.5";
};
schleuder = {
dependencies = [
"activerecord"
"bcrypt"
"charlock_holmes"
"gpgme"
"mail"
"mail-gpg"
"rake"
"sinatra"
"sinatra-contrib"
"sqlite3"
"thin"
"thor"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0lxmi7402v5qkajx3j5bydarxf3lbm1kzpwgy7zsmc7l28mcv8wx";
type = "gem";
};
version = "4.0.3";
};
sinatra = {
dependencies = [
"mustermann"
"rack"
"rack-protection"
"tilt"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0wkc079h6hzq737j4wycpnv7c38mhd0rl33pszyy7768zzvyjc9y";
type = "gem";
};
version = "2.2.4";
};
sinatra-contrib = {
dependencies = [
"multi_json"
"mustermann"
"rack-protection"
"sinatra"
"tilt"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0s6c1k3zzxp3xa7libvlpqaby27124rccyyxcsly04ih904cxk33";
type = "gem";
};
version = "2.2.4";
};
sqlite3 = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1z1wa639c278bsipczn6kv8b13fj85pi8gk7x462chqx6k0wm0ax";
type = "gem";
};
version = "1.4.4";
};
thin = {
dependencies = [
"daemons"
"eventmachine"
"rack"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "08g1yq6zzvgndj8fd98ah7pp8g2diw28p8bfjgv7rvjvp8d2am8w";
type = "gem";
};
version = "1.8.2";
};
thor = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
type = "gem";
};
version = "0.20.3";
};
tilt = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
type = "gem";
};
version = "2.3.0";
};
timeout = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
type = "gem";
};
version = "0.4.1";
};
tzinfo = {
dependencies = [ "concurrent-ruby" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
type = "gem";
};
version = "2.0.6";
};
zeitwerk = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1kr2731z8f6cj23jxh67cdnpkrnnfwbrxj1hfhshls4mp8i8drmj";
type = "gem";
};
version = "2.6.15";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
bundlerApp,
ruby,
stdenv,
bundlerUpdateScript,
nixosTests,
}:
bundlerApp {
inherit ruby;
pname = "schleuder";
gemdir = ./.;
exes = [
"schleuder"
"schleuder-api-daemon"
];
passthru.updateScript = bundlerUpdateScript "schleuder";
passthru.tests = {
inherit (nixosTests) schleuder;
};
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
description = "Encrypting mailing list manager with remailing-capabilities";
longDescription = ''
Schleuder is a group's email-gateway: subscribers can exchange
encrypted emails among themselves, receive emails from
non-subscribers and send emails to non-subscribers via the list.
'';
homepage = "https://schleuder.org";
changelog = "https://0xacab.org/schleuder/schleuder/blob/main/CHANGELOG.md";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ hexa ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
orc,
pkg-config,
fetchpatch,
autoreconfHook,
gtk-doc,
}:
stdenv.mkDerivation rec {
pname = "schroedinger";
version = "1.0.11";
src = fetchurl {
url = "https://download.videolan.org/contrib/${pname}-${version}.tar.gz";
sha256 = "04prr667l4sn4zx256v1z36a0nnkxfdqyln48rbwlamr6l3jlmqy";
};
outputs = [
"out"
"dev"
"devdoc"
];
nativeBuildInputs = [
pkg-config
autoreconfHook
gtk-doc
];
buildInputs = [ orc ];
doCheck = (!stdenv.hostPlatform.isDarwin);
patchFlags = [ "-p0" ];
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/macports/macports-ports/master/multimedia/schroedinger/files/patch-testsuite-Makefile.am.diff";
sha256 = "0cc8ymvgjgwy7ghca2dd8m8pxpinf27s2i8krf2m3fzv2ckq09v3";
})
];
meta = with lib; {
description = "Implementation of the Dirac video codec in ANSI C";
homepage = "https://sourceforge.net/projects/schrodinger/";
maintainers = [ ];
license = [
licenses.mpl11
licenses.lgpl2
licenses.mit
];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,70 @@
# Generated by debian-patches.sh from debian-patches.txt
let
prefix = "https://salsa.debian.org/debian/schroot/-/raw/debian/master/1.6.13-4/debian/patches";
in
[
{
url = "${prefix}/1539621689.revert.schroot-1.6.10-48-g2600bcab.revert-environment-preserve-empty-values.patch";
sha256 = "0kvp47qkhq4s7bqil1pcq7c0a63hiw7xgmrxv460rfb9irvlp2wn";
}
{
url = "${prefix}/1448890714.schroot-1.7.2-72-gbf30a928.setup-d-20copyfiles-canonicalize-destination-path.patch";
sha256 = "09vliqpmqn4yvh3mxsa9iqlwxkfrhfjraizm945ir6v23m622i6k";
}
{
url = "${prefix}/1453505583.schroot-1.7.2-72-g11587fd8.etc-setup-d-20copyfiles-replace-dangling-symlink-during-cp.patch";
sha256 = "036g3br7251ykhmgq48zbjdgyy06m0rhrv1hf540zb7n6ildygkz";
}
{
url = "${prefix}/1496783678.schroot-1.7.2-127-ga5e5d8d9.fix-bash-completion.patch";
sha256 = "0adqpyqkw5kyg1843ygificm2hxawl4pi1lbyn2dvzw11yawvv9k";
}
{
url = "${prefix}/1530433671.schroot-1.7.2-129-g00c0a972.cmake-use-soelim-r-option.patch";
sha256 = "0csn6j6xsi8bd16r7bvd33albwz6v7fv7wawakkiimbj59zbinhn";
}
{
url = "${prefix}/1487872945.schroot-1.7.2-137-g5c36362b.support-copyfiles-installation-into-non-existent-directories.patch";
sha256 = "1iizprcdnisdjgp091y0zjsayq5qqfwh9d2d9zns1d0414jafp7b";
}
{
url = "${prefix}/1487872999.schroot-1.7.2-138-g5a611c49.support-copyfiles-source-destination-specifications.patch";
sha256 = "03f735zyzj4zmrrmynb2xl49i8s8580d9dyp0kxq5aq555sl7hx2";
}
{
url = "${prefix}/1662655911.reschroot-1.6.13-2-g779349dc.replace-usage-of-egrep-and-which.patch";
sha256 = "0f2wziwchfg3v193i8x7s60vr9yx72z3f7ddgsfkshay4m5mrprs";
}
{
url = "${prefix}/1662656169.reschroot-1.6.13-3-ga9e100e5.clean-up-mess-created-in-the-portuguese-translations.patch";
sha256 = "1yq05pc38rkbb0njwllfwjc8dl73i7g7z89spsa7ls3amkyccm7w";
}
{
url = "${prefix}/1664011392.reschroot-1.6.13-4-g93017cff.update-french-translation.patch";
sha256 = "0qhcifjxgipxh67fjf0ydclvxn9yys7hfcwxir9jnw572y9igx1k";
}
{
url = "${prefix}/1665995770.reschroot-1.6.13-5-g81b88b45.document-a-login-shell-might-be-switched-to-a-regular-shell.patch";
sha256 = "1lwslyqrfz1xmi28j1s80pq763k63f9g4qgx9vr3qm247gb7v55l";
}
{
url = "${prefix}/1692468301.reschroot-1.6.13-6-g271acf6e.subject-mount-a-new-instance-of-dev-pts-in-the-chroot.patch";
sha256 = "1j04bxcbg2bigss7sjqyg7cn8547wwmp5zj8406v3vk5g71iaijf";
}
{
url = "${prefix}/1664222056.reschroot-1.6.13-9-g55af32cf.fix-localename-type.patch";
sha256 = "15kjl3g6c79jfqh45mr3h3qbl5gx2pmxqc2pmsjplxdkksx9i6yn";
}
{
url = "${prefix}/1658716738.reschroot-1.6.12-2-g2045008e.fix-variable-usage-in-copyfiles-copy-file-function.patch";
sha256 = "02c6zsmprdvkgf3krl6z1qwvx144arng0s34ry1dq8qvwl5fd66c";
}
{
url = "${prefix}/fix-dupes-in-buildd-configuration.patch";
sha256 = "0s8racsl2s4mix6n7xb09dmncs5w0jmnb0vrjxpwx9c1yhz46dwl";
}
{
url = "${prefix}/fix-example-configuration.patch";
sha256 = "1r6kffc7a4aanksjv4658vs4xs31gmrhpa2gmpqkr21s7zk45yav";
}
]

View File

@@ -0,0 +1,17 @@
schroot/1.6.13-5
1539621689.revert.schroot-1.6.10-48-g2600bcab.revert-environment-preserve-empty-values.patch
1448890714.schroot-1.7.2-72-gbf30a928.setup-d-20copyfiles-canonicalize-destination-path.patch
1453505583.schroot-1.7.2-72-g11587fd8.etc-setup-d-20copyfiles-replace-dangling-symlink-during-cp.patch
1496783678.schroot-1.7.2-127-ga5e5d8d9.fix-bash-completion.patch
1530433671.schroot-1.7.2-129-g00c0a972.cmake-use-soelim-r-option.patch
1487872945.schroot-1.7.2-137-g5c36362b.support-copyfiles-installation-into-non-existent-directories.patch
1487872999.schroot-1.7.2-138-g5a611c49.support-copyfiles-source-destination-specifications.patch
1662655911.reschroot-1.6.13-2-g779349dc.replace-usage-of-egrep-and-which.patch
1662656169.reschroot-1.6.13-3-ga9e100e5.clean-up-mess-created-in-the-portuguese-translations.patch
1664011392.reschroot-1.6.13-4-g93017cff.update-french-translation.patch
1665995770.reschroot-1.6.13-5-g81b88b45.document-a-login-shell-might-be-switched-to-a-regular-shell.patch
1692468301.reschroot-1.6.13-6-g271acf6e.subject-mount-a-new-instance-of-dev-pts-in-the-chroot.patch
1664222056.reschroot-1.6.13-9-g55af32cf.fix-localename-type.patch
1658716738.reschroot-1.6.12-2-g2045008e.fix-variable-usage-in-copyfiles-copy-file-function.patch
fix-dupes-in-buildd-configuration.patch
fix-example-configuration.patch

View File

@@ -0,0 +1,43 @@
diff --git a/etc/setup.d/20copyfiles b/etc/setup.d/20copyfiles
index 3247ae2a..eed9fa46 100755
--- a/etc/setup.d/20copyfiles
+++ b/etc/setup.d/20copyfiles
@@ -39,9 +39,9 @@ copy_file()
if [ -e "$2" ]; then
# Device and inode
- da=$(/usr/bin/stat --format="%d %i" "$1")
+ da=$(stat --format="%d %i" "$1")
# This one can fail since it might not exist yet
- db=$(/usr/bin/stat --format="%d %i" "$2" 2>/dev/null || :)
+ db=$(stat --format="%d %i" "$2" 2>/dev/null || :)
if [ "$da" = "$db" ]; then
COPY="false"
@@ -50,8 +50,8 @@ copy_file()
:
elif [ -f "$1" ] && [ -f "$2" ]; then
# Content
- ca=$(/usr/bin/md5sum "$1" | sed -e 's/\(^[0-9a-f][0-9a-f]*\).*$/\1/')
- cb=$(/usr/bin/md5sum "$2" 2>/dev/null || :)
+ ca=$(md5sum "$1" | sed -e 's/\(^[0-9a-f][0-9a-f]*\).*$/\1/')
+ cb=$(md5sum "$2" 2>/dev/null || :)
cb=$(echo "$cb" | sed -e 's/\(^[0-9a-f][0-9a-f]*\).*$/\1/')
# Copy only if file contents differ
if [ "$ca" = "$cb" ]; then
diff --git a/etc/setup.d/20nssdatabases b/etc/setup.d/20nssdatabases
index ac7206b7..00645362 100755
--- a/etc/setup.d/20nssdatabases
+++ b/etc/setup.d/20nssdatabases
@@ -42,9 +42,9 @@ if [ $STAGE = "setup-start" ] || [ $STAGE = "setup-recover" ]; then
fi
# Device and inode
- dr=$(/usr/bin/stat --format="%d %i" "/etc/$db")
+ dr=$(stat --format="%d %i" "/etc/$db")
# This one can fail since it might not exist yet
- dc=$(/usr/bin/stat --format="%d %i" "${CHROOT_PATH}/etc/$db" 2>/dev/null || :)
+ dc=$(stat --format="%d %i" "${CHROOT_PATH}/etc/$db" 2>/dev/null || :)
# If the database inside and outside the chroot is the
# same, it's very likely that dup_nss would blank the

View File

@@ -0,0 +1,37 @@
diff --git a/sbuild/sbuild-chroot-config.cc b/sbuild/sbuild-chroot-config.cc
index 48f8edad..388e2cac 100644
--- a/sbuild/sbuild-chroot-config.cc
+++ b/sbuild/sbuild-chroot-config.cc
@@ -32,6 +32,7 @@
#include <cstring>
#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/directory.hpp>
#include <sys/types.h>
#include <sys/stat.h>
diff --git a/sbuild/sbuild-run-parts.cc b/sbuild/sbuild-run-parts.cc
index 23132601..48bd9d67 100644
--- a/sbuild/sbuild-run-parts.cc
+++ b/sbuild/sbuild-run-parts.cc
@@ -30,6 +30,7 @@
#include <boost/format.hpp>
#include <boost/filesystem/operations.hpp>
+#include <boost/filesystem/directory.hpp>
using boost::format;
using namespace sbuild;
diff --git a/sbuild/sbuild-util.cc b/sbuild/sbuild-util.cc
index b6af7e89..dde32b49 100644
--- a/sbuild/sbuild-util.cc
+++ b/sbuild/sbuild-util.cc
@@ -35,8 +35,6 @@
#include <time.h>
#endif
-#include <boost/filesystem/convenience.hpp>
-
using namespace sbuild;
namespace

View File

@@ -0,0 +1,33 @@
diff --git a/etc/CMakeLists.txt b/etc/CMakeLists.txt
index dd31fd3d..65521010 100644
--- a/etc/CMakeLists.txt
+++ b/etc/CMakeLists.txt
@@ -19,20 +19,20 @@
set(schroot_sysconf_data
schroot.conf)
-install(FILES ${schroot_sysconf_data}
- DESTINATION ${SCHROOT_SYSCONF_DIR})
+# install(FILES ${schroot_sysconf_data}
+# DESTINATION ${SCHROOT_SYSCONF_DIR})
set(files
copyfiles
fstab
nssdatabases)
-set(profiles
- buildd
- default
- desktop
- minimal
- sbuild)
+# set(profiles
+# buildd
+# default
+# desktop
+# minimal
+# sbuild)
set(arches
${SBUILD_PLATFORM})

View File

@@ -0,0 +1,10 @@
--- a/etc/CMakeLists.txt
+++ b/etc/CMakeLists.txt
@@ -68,6 +68,6 @@ foreach(profile ${profiles})
endforeach(file)
endforeach(profile)
-add_subdirectory(pam)
+# add_subdirectory(pam)
add_subdirectory(bash_completion)
add_subdirectory(setup.d)

View File

@@ -0,0 +1,12 @@
--- a/bin/schroot/CMakeLists.txt
+++ b/bin/schroot/CMakeLists.txt
@@ -40,8 +40,7 @@ install(TARGETS schroot RUNTIME
DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
- WORLD_READ WORLD_EXECUTE
- SETUID)
+ WORLD_READ WORLD_EXECUTE)
set(installdirs
${SCHROOT_CONF_CHROOT_D}

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchurl,
# Runtime script dependencies
coreutils,
getent,
gnugrep,
gnused,
gnutar,
util-linux,
# Native build inputs
cmake,
findutils,
gettext,
mandoc,
makeWrapper,
perlPackages,
# Build inputs
boost,
}:
let
scripts-bin-path = lib.makeBinPath [
coreutils
getent
gnugrep
gnused
gnutar
util-linux
];
upstream-version = "1.6.13";
in
stdenv.mkDerivation {
pname = "schroot";
version = "${upstream-version}-5";
src = fetchurl {
url = "https://codeberg.org/shelter/reschroot/archive/release/reschroot-${upstream-version}.tar.gz";
hash = "sha256-wF1qG7AhDUAeZSLu4sRl4LQ8bJj3EB1nH56e+Is6zPU=";
};
patches = map fetchurl (import ./debian-patches.nix) ++ [
./no-setuid.patch
./no-pam-service.patch
./no-default-config.patch
./fix-absolute-paths.patch
./fix-boost-includes.patch
];
nativeBuildInputs = [
cmake
findutils
gettext
mandoc
makeWrapper
perlPackages.Po4a
];
buildInputs = [
boost
];
cmakeFlags = [
(lib.cmakeFeature "CMAKE_INSTALL_LOCALSTATEDIR" "/var")
(lib.cmakeFeature "SCHROOT_SYSCONF_DIR" "/etc/schroot")
(lib.cmakeFeature "SCHROOT_CONF_SETUP_D" "${placeholder "out"}/etc/schroot/setup.d")
];
postPatch = ''
# Substitute the path to the mount binary
substituteInPlace bin/schroot-mount/schroot-mount-main.cc \
--replace-fail "/bin/mount" "${util-linux}/bin/mount"
'';
postFixup = ''
# Make wrappers for all shell scripts used by schroot
# The wrapped script are put into a separate directory to not be run by schroot during setup
mkdir $out/etc/schroot/setup.d.wrapped
cd $out/etc/schroot/setup.d
find * -type f | while read -r file; do
mv "$file" $out/etc/schroot/setup.d.wrapped
makeWrapper "$out/etc/schroot/setup.d.wrapped/$file" "$file" --set PATH ${scripts-bin-path}
done
# Get rid of stuff that's (probably) not needed
rm -vrf $out/lib $out/include
'';
meta = {
description = "Lightweight virtualisation tool";
longDescription = ''
Schroot is a program that allows the user to run a command or a login shell in a chroot environment.
'';
homepage = "https://codeberg.org/shelter/reschroot";
changelog = "https://codeberg.org/shelter/reschroot/raw/tag/release/reschroot-${upstream-version}/NEWS";
mainProgram = "schroot";
maintainers = with lib.maintainers; [ bjsowa ];
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
fetchurl,
tcl,
tk,
libX11,
zlib,
makeWrapper,
which,
makeDesktopItem,
}:
tcl.mkTclDerivation rec {
pname = "scid-vs-pc";
version = "4.26";
src = fetchurl {
url = "mirror://sourceforge/scidvspc/scid_vs_pc-${version}.tgz";
hash = "sha256-iK4h7YS8+W2nr3Bbmai4Ervt0YWYKgkQaZ5IH7Q9HkE=";
};
postPatch = ''
substituteInPlace configure Makefile.conf \
--replace "~/.fonts" "$out/share/fonts/truetype/Scid" \
--replace "which fc-cache" "false"
'';
nativeBuildInputs = [
makeWrapper
which
];
buildInputs = [
tk
libX11
zlib
];
configureFlags = [
"BINDIR=${placeholder "out"}/bin"
"SHAREDIR=${placeholder "out"}/share"
];
postInstall = ''
mkdir -p $out/share/applications
cp $desktopItem/share/applications/* $out/share/applications/
install -D icons/scid.png "$out"/share/icons/hicolor/128x128/apps/scid.png
'';
desktopItem = makeDesktopItem {
name = "scid-vs-pc";
desktopName = "Scid vs. PC";
genericName = "Chess Database";
comment = meta.description;
icon = "scid";
exec = "scid";
categories = [
"Game"
"BoardGame"
];
};
meta = with lib; {
description = "Chess database with play and training functionality";
homepage = "https://scidvspc.sourceforge.net/";
license = lib.licenses.gpl2Only;
mainProgram = "scid";
maintainers = [ maintainers.paraseba ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
tcl,
tk,
libX11,
zlib,
}:
tcl.mkTclDerivation rec {
pname = "scid";
version = "5.0.2";
src = fetchFromGitHub {
owner = "benini";
repo = "scid";
rev = "v${version}";
hash = "sha256-5WGZm7EwhZAMKJKxj/OOIFOJIgPBcc6/Bh4xVAlia4Y=";
};
postPatch = ''
substituteInPlace configure \
--replace "set var(INSTALL) {install_mac}" ""
'';
nativeBuildInputs = [
makeWrapper
];
buildInputs = [
tk
libX11
zlib
];
configureFlags = [
"BINDIR=$(out)/bin"
"SHAREDIR=$(out)/share"
];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
enableParallelBuilding = true;
meta = {
description = "Chess database with play and training functionality";
maintainers = with lib.maintainers; [ agbrooks ];
homepage = "https://scid.sourceforge.net/";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation rec {
pname = "scientifica";
version = "2.3";
src = fetchurl {
url = "https://github.com/oppiliappan/scientifica/releases/download/v${version}/scientifica.tar";
hash = "sha256-8IV4aaDoRsbxddy4U90fEZ6henUhjmO38HNtWo4ein8=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
mkdir -p $out/share/fonts/misc
install ttf/*.ttf $out/share/fonts/truetype
install otb/*.otb $out/share/fonts/misc
install bdf/*.bdf $out/share/fonts/misc
runHook postInstall
'';
meta = with lib; {
description = "Tall and condensed bitmap font for geeks";
homepage = "https://github.com/oppiliappan/scientifica";
license = licenses.ofl;
platforms = platforms.all;
maintainers = with maintainers; [ moni ];
};
}

View File

@@ -0,0 +1,124 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
undmg,
autoPatchelfHook,
alsa-lib,
ncurses5,
xorg,
}:
let
pname = "scilab-bin";
version = "6.1.1";
srcs = {
aarch64-darwin = fetchurl {
url = "https://www.utc.fr/~mottelet/scilab/download/${version}/scilab-${version}-accelerate-arm64.dmg";
sha256 = "sha256-L4dxD8R8bY5nd+4oDs5Yk0LlNsFykLnAM+oN/O87SRI=";
};
x86_64-darwin = fetchurl {
url = "https://www.utc.fr/~mottelet/scilab/download/${version}/scilab-${version}-x86_64.dmg";
sha256 = "sha256-tBeqzllMuogrGcJxGqEl2DdNXaiwok3yhzWSdlWY5Fc=";
};
x86_64-linux = fetchurl {
url = "https://www.scilab.org/download/${version}/scilab-${version}.bin.linux-x86_64.tar.gz";
sha256 = "sha256-PuGnz2YdAhriavwnuf5Qyy0cnCeRHlWC6dQzfr7bLHk=";
};
};
src =
srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
meta = {
homepage = "http://www.scilab.org/";
description = "Scientific software package for numerical computations (Matlab lookalike)";
platforms = [
"aarch64-darwin"
"x86_64-darwin"
"x86_64-linux"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.gpl2Only;
mainProgram = "scilab";
};
darwin = stdenv.mkDerivation {
inherit
pname
version
src
meta
;
nativeBuildInputs = [
makeWrapper
undmg
];
sourceRoot = "scilab-${version}.app";
installPhase = ''
runHook preInstall
mkdir -p $out/{Applications/scilab.app,bin}
cp -R . $out/Applications/scilab.app
makeWrapper $out/{Applications/scilab.app/Contents/MacOS,bin}/scilab
runHook postInstall
'';
dontCheckForBrokenSymlinks = true;
};
linux = stdenv.mkDerivation {
inherit
pname
version
src
meta
;
nativeBuildInputs = [
autoPatchelfHook
];
buildInputs = [
alsa-lib
ncurses5
stdenv.cc.cc
]
++ (with xorg; [
libX11
libXcursor
libXext
libXft
libXi
libXrandr
libXrender
libXtst
libXxf86vm
]);
installPhase = ''
runHook preInstall
mkdir -p $out
mv -t $out bin include lib share thirdparty
sed -i \
-e 's|\$(/bin/|$(|g' \
-e 's|/usr/bin/||g' \
$out/bin/{scilab,xcos}
sed -i \
-e "s|Exec=|Exec=$out/bin/|g" \
-e "s|Terminal=.*$|Terminal=true|g" \
$out/share/applications/*.desktop
runHook postInstall
'';
dontCheckForBrokenSymlinks = true;
};
in
if stdenv.hostPlatform.isDarwin then darwin else linux

View File

@@ -0,0 +1,38 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "scilla";
version = "1.3.1";
src = fetchFromGitHub {
owner = "edoardottt";
repo = "scilla";
tag = "v${version}";
hash = "sha256-V6QJqjuVLE6jpwv4XbsdPx8kpfTRjV4QH5O6lng9+h4=";
};
vendorHash = "sha256-yTsiEA6NI2atN1VrclwVe1xz7CEFfcuRt4yMuz2CFog=";
ldflags = [
"-w"
"-s"
];
checkFlags = [
# requires network access
"-skip=TestIPToHostname"
];
meta = {
description = "Information gathering tool for DNS, ports and more";
mainProgram = "scilla";
homepage = "https://github.com/edoardottt/scilla";
changelog = "https://github.com/edoardottt/scilla/releases/tag/v${version}";
license = with lib.licenses; [ gpl3Plus ];
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
unzip,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scimark";
version = "4c";
src = fetchurl {
url = "https://math.nist.gov/scimark2/scimark${finalAttrs.version}.zip";
hash = "sha256-kcg5vKYp0B7+bC/CmFMO/tMwxf9q6nvuFv0vRSy3MbE=";
};
nativeBuildInputs = [
unzip
];
dontConfigure = true;
installPhase = ''
runHook preInstall
install -Dm755 scimark4 -t $out/bin/
runHook postInstall
'';
meta = {
homepage = "https://math.nist.gov/scimark2/index.html";
description = "Scientific and numerical computing benchmark (ANSI C version)";
downloadPage = "https://math.nist.gov/scimark2/download_c.html";
license = lib.licenses.publicDomain;
mainProgram = "scimark4";
maintainers = [ ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
buildGoModule,
fetchFromGitHub,
openpam,
}:
buildGoModule {
pname = "scion-apps";
version = "unstable-2025-03-12";
src = fetchFromGitHub {
owner = "netsec-ethz";
repo = "scion-apps";
rev = "55667b489898af09ae9d8290410da0be176549f9";
hash = "sha256-Tj0vtdYDmKbMpcO+t9KrtFewqdjusr0JRXpX6gY69WM=";
};
vendorHash = "sha256-om6ArtnKC9Gm5BdAqW57BnE0BsOmSPAAIPDDrQ5ZmJA=";
postPatch = ''
substituteInPlace webapp/web/tests/health/scmpcheck.sh \
--replace-fail "hostname -I" "hostname -i"
'';
postInstall = ''
# Add `scion-` prefix to all binaries
for f in $out/bin/*; do
filename="$(basename "$f")"
mv -v $f $out/bin/scion-$filename
done
# Fix nested subpackage names
mv -v $out/bin/scion-server $out/bin/scion-ssh-server
mv -v $out/bin/scion-client $out/bin/scion-ssh-client
# Include static website for webapp
mkdir -p $out/share
cp -r webapp/web $out/share/scion-webapp
'';
buildInputs = [
openpam
];
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Public repository for SCION applications";
homepage = "https://github.com/netsec-ethz/scion-apps";
license = licenses.asl20;
maintainers = with maintainers; [
matthewcroughan
sarcasticadmin
];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "scion-bootstrapper";
version = "0.0.7";
src = fetchFromGitHub {
owner = "netsec-ethz";
repo = "bootstrapper";
rev = "v${version}";
hash = "sha256-X4lNgd6klIw0NW9NVG+d1JK+WNfOclbu43GYucelB7o=";
};
vendorHash = "sha256-X4bOIvNlyQoAWOd3L6suE64KnlCV6kuE1ieVecVYWOw=";
doCheck = false;
ldflags = [
"-s"
"-w"
];
postInstall = ''
mv $out/bin/bootstrapper $out/bin/scion-bootstrapper
'';
meta = with lib; {
description = "Bootstrapper for SCION network configuration";
homepage = "https://github.com/netsec-ethz/bootstrapper";
license = licenses.asl20;
maintainers = with maintainers; [
matthewcroughan
sarcasticadmin
];
mainProgram = "scion-bootstrapper";
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
nixosTests,
}:
buildGoModule (finalAttrs: {
pname = "scion";
version = "0.12.0";
src = fetchFromGitHub {
owner = "scionproto";
repo = "scion";
tag = "v${finalAttrs.version}";
hash = "sha256-J51GIQQhS623wFUU5dI/TwT2rkDH69518lpdCLZ/iM0=";
};
vendorHash = "sha256-Ew/hQM8uhaM89sCcPKUBbiGukDq3h5x+KID3w/8BDHg=";
excludedPackages = [
"acceptance"
"demo"
"tools"
"pkg/private/xtest/graphupdater"
];
postInstall = ''
set +e
mv $out/bin/gateway $out/bin/scion-ip-gateway
mv $out/bin/dispatcher $out/bin/scion-dispatcher
mv $out/bin/router $out/bin/scion-router
mv $out/bin/control $out/bin/scion-control
mv $out/bin/daemon $out/bin/scion-daemon
set -e
'';
doCheck = true;
tags = [ "sqlite_mattn" ];
passthru = {
tests = {
inherit (nixosTests) scion-freestanding-deployment;
};
updateScript = nix-update-script { };
};
meta = {
description = "Future Internet architecture utilizing path-aware networking";
homepage = "https://scion-architecture.net/";
platforms = lib.platforms.unix;
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
sarcasticadmin
matthewcroughan
];
teams = with lib.teams; [ ngi ];
};
})

View File

@@ -0,0 +1,34 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "scip-go";
version = "0.1.26";
src = fetchFromGitHub {
owner = "sourcegraph";
repo = "scip-go";
rev = "v${version}";
hash = "sha256-4Xm/o4hl94vCAEpFbaKDMDhv6ZyANCg2HDC6EIwyzsI=";
};
vendorHash = "sha256-J/97J/VXmQAYHu1qr9KiTUrB6/SVFcahihRatCKgaD8=";
ldflags = [
"-s"
"-w"
];
doCheck = false;
meta = with lib; {
description = "SCIP (SCIP Code Intelligence Protocol) indexer for Golang";
homepage = "https://github.com/sourcegraph/scip-go/tree/v${version}";
license = licenses.asl20;
maintainers = with maintainers; [ arikgrahl ];
mainProgram = "scip-go";
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
scip,
}:
buildGoModule rec {
pname = "scip";
version = "0.5.1";
src = fetchFromGitHub {
owner = "sourcegraph";
repo = "scip";
rev = "v${version}";
hash = "sha256-UXa5lMFenynHRIvA4MOXkjMVd705LBWs372s3MFAc+8=";
};
vendorHash = "sha256-6vx3Dt0ZNR0rY5bEUF5X1hHj/gv21920bhfd+JJ9bYk=";
ldflags = [
"-s"
"-w"
"-X=main.Reproducible=true"
];
# update documentation to fix broken test
postPatch = ''
substituteInPlace docs/CLI.md \
--replace 0.3.0 0.3.1
'';
passthru.tests = {
version = testers.testVersion {
package = scip;
version = "v${version}";
};
};
meta = with lib; {
description = "SCIP Code Intelligence Protocol CLI";
mainProgram = "scip";
homepage = "https://github.com/sourcegraph/scip";
changelog = "https://github.com/sourcegraph/scip/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
scipopt-scip,
cliquer,
gsl,
gmp,
bliss,
nauty,
}:
stdenv.mkDerivation rec {
pname = "scipopt-gcg";
version = "372";
# To correlate scipVersion and version, check: https://scipopt.org/#news
scipVersion = "9.2.3";
src = fetchFromGitHub {
owner = "scipopt";
repo = "gcg";
tag = "v${version}";
hash = "sha256-Sx0ZSca7XBT4GqxWt3bzelaXlI7kZCJo+by22mtTFhA=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [
scipopt-scip
cliquer
gsl
gmp
bliss
nauty
];
# Fixing the error
# > CMake Error at CMakeLists.txt:236 (find_package):
# > By not providing "FindNAUTY.cmake" in CMAKE_MODULE_PATH this project has
# > asked CMake to find a package configuration file provided by "NAUTY", but
# > CMake did not find one.
# with this weird workaround of setting SCIPOptSuite_SOURCE_DIR to include the scipopt-scip source
# files via symlinks, so the specific nauty files are found:
preConfigure = ''
mkdir -pv $out/scip
ln -sv ${scipopt-scip.src}/src/ $out/scip/src
cmakeFlagsArray+=(
"-DSCIPOptSuite_SOURCE_DIR=$out"
)
'';
doCheck = true;
meta = {
maintainers = with lib.maintainers; [ fettgoenner ];
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
description = "Branch-and-Price & Column Generation for Everyone";
license = lib.licenses.lgpl3Plus;
homepage = "https://gcg.zib.de";
mainProgram = "gcg";
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
boost,
blas,
gmp,
onetbb,
gfortran,
}:
stdenv.mkDerivation rec {
pname = "scipopt-papilo";
version = "2.4.3";
# To correlate scipVersion and version, check: https://scipopt.org/#news
scipVersion = "9.2.3";
src = fetchFromGitHub {
owner = "scipopt";
repo = "papilo";
tag = "v${version}";
hash = "sha256-SsRAwidqvisoDODBLRatVWFw7wGeLUavmPXSlPmD7d8=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
blas
gmp
gfortran
boost
onetbb
];
cmakeFlags = [
# Disable automatic download of TBB.
(lib.cmakeBool "TBB_DOWNLOAD" false)
# Explicitly disable SoPlex as a built-in back-end solver to avoid this error:
# > include/boost/multiprecision/mpfr.hpp:22: fatal error: mpfr.h: No such file or directory
# > compilation terminated.
(lib.cmakeBool "SOPLEX" false)
];
doCheck = true;
meta = {
maintainers = with lib.maintainers; [ fettgoenner ];
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
description = "Parallel Presolve for Integer and Linear Optimization";
license = lib.licenses.lgpl3Plus;
homepage = "https://github.com/scipopt/papilo";
mainProgram = "papilo";
};
}

View File

@@ -0,0 +1,40 @@
From 7772c64ee2face1c1099c23ecbfd20ff663cffc3 Mon Sep 17 00:00:00 2001
From: Florian Klink <flokli@flokli.de>
Date: Tue, 7 Oct 2025 16:19:31 +0300
Subject: [PATCH] check: fix invalid ctest invocation
ctest doesn't like `-R "-default"`. CMake 4.0 fails with the following
error message:
> CMake Error: Invalid value used with -R
`-R` normally specifies the regex that needs to match. If none is
specified, all are selected:
https://cmake.org/cmake/help/latest/manual/ctest.1.html#cmdoption-ctest-R
This maybe never worked, but got silently ignored until
https://cmake.org/cmake/help/latest/policy/CMP0175.html
Removing that regex should only cause *more* tests to get selected, not
less - and the build now succeeds with it.
---
check/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt
index 0d667d5..c26b978 100644
--- a/check/CMakeLists.txt
+++ b/check/CMakeLists.txt
@@ -4,7 +4,7 @@ include(CTest)
# add a custom SCIP check target 'scip_check'
#
add_custom_target(scip_check
- COMMAND ${CMAKE_CTEST_COMMAND} -R "-default" -E "applications" --output-on-failure
+ COMMAND ${CMAKE_CTEST_COMMAND} -E "applications" --output-on-failure
DEPENDS scip
)
--
2.51.0

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
zlib,
readline,
gmp,
scipopt-soplex,
scipopt-papilo,
scipopt-zimpl,
ipopt,
onetbb,
boost,
gfortran,
criterion,
mpfr,
}:
stdenv.mkDerivation rec {
pname = "scipopt-scip";
version = "9.2.3";
src = fetchFromGitHub {
owner = "scipopt";
repo = "scip";
tag = "v${lib.replaceStrings [ "." ] [ "" ] version}";
hash = "sha256-Zc1AXNpHQXXFO8jkMaJj6xYkmkQxAM8G+SiPiH9xCAw=";
};
patches = [
# https://github.com/scipopt/scip/pull/169
./0001-check-fix-invalid-ctest-invocation.patch
];
nativeBuildInputs = [ cmake ];
buildInputs = [
scipopt-soplex
scipopt-papilo
scipopt-zimpl
ipopt
gmp
readline
zlib
onetbb
boost
gfortran
criterion
mpfr # if not included, throws fatal error: mpfr.h not found
];
doCheck = true;
meta = {
maintainers = with lib.maintainers; [ fettgoenner ];
changelog = "https://scipopt.org/doc-${version}/html/RN${lib.versions.major version}.php";
description = "Solving Constraint Integer Programs";
license = lib.licenses.asl20;
homepage = "https://github.com/scipopt/scip";
mainProgram = "scip";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
cmake,
gmp,
mpfr,
zlib,
boost,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scipopt-soplex";
version = "7.1.5";
# To correlate scipVersion and version, check: https://scipopt.org/#news
scipVersion = "9.2.3";
src = fetchFromGitHub {
owner = "scipopt";
repo = "soplex";
rev = "release-${builtins.replaceStrings [ "." ] [ "" ] finalAttrs.version}";
hash = "sha256-gtz2h5EszE77zYZ8m2UtkYnoquO8GJhAAzsvQW5b+3I=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
gmp
mpfr
zlib
];
strictDeps = true;
doCheck = true;
meta = {
homepage = "https://soplex.zib.de/";
description = "Sequential object-oriented simPlex";
license = with lib.licenses; [ asl20 ];
mainProgram = "soplex";
maintainers = with lib.maintainers; [ david-r-cox ];
changelog = "https://scipopt.org/doc-${finalAttrs.scipVersion}/html/RN${lib.versions.major finalAttrs.scipVersion}.php";
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchzip,
cmake,
scipopt-scip,
zlib,
mpi,
}:
stdenv.mkDerivation rec {
pname = "scipopt-ug";
version = "1.0.0-beta6";
# To correlate scipVersion and version, check: https://scipopt.org/#news
scipVersion = "9.2.3";
# Take the SCIPOptSuite source since no other source exists publicly.
src = fetchzip {
url = "https://github.com/scipopt/scip/releases/download/v${
lib.replaceStrings [ "." ] [ "" ] scipVersion
}/scipoptsuite-${scipVersion}.tgz";
sha256 = "sha256-Hi6oDPtJZODTBIuRYE62sUMTJqfmF0flY3cGoWh2IZE=";
};
sourceRoot = "${src.name}/ug";
nativeBuildInputs = [
cmake
];
buildInputs = [
scipopt-scip
mpi
zlib
];
meta = {
maintainers = with lib.maintainers; [ fettgoenner ];
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
description = "Ubiquity Generator framework to parallelize branch-and-bound based solvers";
license = lib.licenses.lgpl3Plus;
homepage = "https://ug.zib.de";
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
bison,
flex,
gmp,
zlib,
}:
stdenv.mkDerivation rec {
pname = "scipopt-zimpl";
version = "362";
# To correlate scipVersion and version, check: https://scipopt.org/#news
scipVersion = "9.2.3";
src = fetchFromGitHub {
owner = "scipopt";
repo = "zimpl";
tag = "v${version}";
sha256 = "juqAwzqBArsFXmz7L7RQaE78EhQdP5P51wQFlCoo7/o=";
};
postPatch = ''
chmod +x check/check.sh
'';
nativeBuildInputs = [
cmake
bison
flex
];
buildInputs = [
gmp
zlib
];
doCheck = true;
checkPhase = ''
runHook preCheck
pushd ../check
./check.sh ../build/bin/zimpl
popd
runHook postCheck
'';
meta = {
maintainers = with lib.maintainers; [ fettgoenner ];
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
description = "Zuse Institut Mathematical Programming Language";
longDescription = ''
ZIMPL is a little language to translate the mathematical model of a
problem into a linear or (mixed-)integer mathematical program
expressed in .lp or .mps file format which can be read by a LP or MIP
solver.
If you use Zimpl for research and publish results, the best way
to refer to Zimpl is to cite my Ph.d. thesis:
@PHDTHESIS{Koch2004,
author = "Thorsten Koch",
title = "Rapid Mathematical Programming",
year = "2004",
school = "Technische {Universit\"at} Berlin",
url = "http://www.zib.de/Publications/abstracts/ZR-04-58/",
note = "ZIB-Report 04-58",
}
'';
license = lib.licenses.lgpl3Plus;
homepage = "https://zimpl.zib.de";
mainProgram = "zimpl";
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scite";
version = "5.5.7";
src = fetchurl {
url = "https://www.scintilla.org/scite${lib.replaceStrings [ "." ] [ "" ] finalAttrs.version}.tgz";
hash = "sha256-L/UceHGFgFbzUPvc2VBehXXJNmwyyPwBfgxvuv3Vxu8=";
};
nativeBuildInputs = [
pkg-config
wrapGAppsHook3
];
sourceRoot = "scite/gtk";
makeFlags = [
"GTK3=1"
"prefix=${placeholder "out"}"
];
CXXFLAGS = [
# GCC 13: error: 'intptr_t' does not name a type
"-include cstdint"
"-include system_error"
];
preBuild = ''
pushd ../../scintilla/gtk
make ''${makeFlags[@]}
popd
pushd ../../lexilla/src
make ''${makeFlags[@]}
popd
'';
enableParallelBuilding = true;
meta = {
homepage = "https://www.scintilla.org/SciTE.html";
description = "SCIntilla based Text Editor";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
rszibele
aleksana
];
mainProgram = "SciTE";
};
})

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
libuuid,
curl,
sqlite,
openssl,
}:
stdenv.mkDerivation {
pname = "scitokens-cpp";
version = "1.1.3";
src = fetchFromGitHub {
owner = "scitokens";
repo = "scitokens-cpp";
rev = "v1.1.3";
hash = "sha256-5EVN/Q4/veNsIdTKcULdKJ+BmRodelfo+CTdrfvkkK8=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
libuuid
openssl
curl
sqlite
];
meta = with lib; {
homepage = "https://github.com/scitokens/scitokens-cpp/";
description = "C++ implementation of the SciTokens library with a C library interface";
platforms = platforms.unix;
license = licenses.asl20;
maintainers = with maintainers; [ evey ];
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
python3,
fetchFromGitHub,
dbus,
signal-cli,
xclip,
testers,
scli,
}:
python3.pkgs.buildPythonApplication rec {
pname = "scli";
version = "0.7.5";
src = fetchFromGitHub {
owner = "isamert";
repo = "scli";
tag = "v${version}";
sha256 = "sha256-pp3uVABsncXXL2PZvTymHPKGAFvB24tnX+3K+C0VW8g=";
};
propagatedBuildInputs = with python3.pkgs; [
pyqrcode
urwid
urwid-readline
];
format = "other";
dontBuild = true;
installPhase = ''
runHook preInstall
patchShebangs scli
install -Dm555 scli -t $out/bin
echo "v$version" > $out/bin/VERSION
runHook postInstall
'';
makeWrapperArgs = [
"--prefix"
"PATH"
":"
(lib.makeBinPath [
dbus
signal-cli
xclip
])
];
passthru.tests = {
version = testers.testVersion {
package = scli;
command = "HOME=$(mktemp -d) scli --version";
};
};
meta = with lib; {
description = "Simple terminal user interface for Signal";
mainProgram = "scli";
homepage = "https://github.com/isamert/scli";
license = licenses.gpl3Only;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchurl,
patchelf,
libusb-compat-0_1,
}:
assert stdenv ? cc && stdenv.cc.libc != null;
stdenv.mkDerivation rec {
pname = "scmccid";
version = "5.0.11";
src =
if stdenv.hostPlatform.system == "i686-linux" then
(fetchurl {
url = "http://www.scmmicro.com/support/download/scmccid_${version}_linux.tar.gz";
sha256 = "1r5wkarhzl09ncgj55baizf573czw0nplh1pgddzx9xck66kh5bm";
})
else if stdenv.hostPlatform.system == "x86_64-linux" then
(fetchurl {
url = "http://www.scmmicro.com/support/download/scmccid_${version}_linux_x64.tar.gz";
sha256 = "0k9lzlk01sl4ycfqgrqqy3bildz0mcr1r0kkicgjz96l4s0jgz0i";
})
else
throw "Architecture not supported";
nativeBuildInputs = [ patchelf ];
installPhase = ''
RPATH=${libusb-compat-0_1.out}/lib:${stdenv.cc.libc.out}/lib
for a in proprietary/*/Contents/Linux/*.so*; do
if ! test -L $a; then
patchelf --set-rpath $RPATH $a
fi
done
mkdir -p $out/pcsc/drivers
cp -R proprietary/* $out/pcsc/drivers
'';
meta = {
homepage = "http://www.scmmicro.com/support/pc-security-support/downloads.html";
description = "PCSC drivers for linux, for the SCM SCR3310 v2.0 card and others";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = [ ];
platforms = with lib.platforms; linux;
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "scmpuff";
version = "0.6.0";
src = fetchFromGitHub {
owner = "mroth";
repo = "scmpuff";
rev = "v${finalAttrs.version}";
sha256 = "sha256-c8F7BgjbR/w2JH8lE2t93s8gj6cWbTQGIkgYTQp9R3U=";
};
vendorHash = "sha256-7xSMToc5rlxogS0N9H6siauu8i33zUA5/omqXAszDOg=";
ldflags = [
"-s"
"-w"
# see .goreleaser.yml in the repository
"-X main.version=${finalAttrs.version}"
"-X main.commit=${finalAttrs.src.rev}"
"-X main.date=1970-01-01T00:00:00Z"
"-X main.builtBy=nixpkgs"
"-X main.treeState=clean"
];
strictDeps = true;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
meta = with lib; {
description = "Numeric file shortcuts for common git commands";
homepage = "https://github.com/mroth/scmpuff";
changelog = "https://github.com/mroth/scmpuff/releases/tag/v${finalAttrs.version}";
license = licenses.mit;
maintainers = with maintainers; [
cpcloud
christoph-heiss
];
mainProgram = "scmpuff";
};
})

View File

@@ -0,0 +1,68 @@
{
stdenv,
fetchurl,
lib,
mitschemeX11,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "scmutils";
version = "20230902";
src = fetchurl {
url = "https://groups.csail.mit.edu/mac/users/gjs/6946/mechanics-system-installation/native-code/scmutils-src-${finalAttrs.version}.tar.gz";
hash = "sha256-9/shOxoKwJ4uDTHmvXqhemgy3W+GUCmoqFm5e1t3W0M=";
};
buildInputs = [ mitschemeX11 ];
configurePhase = ''
runHook preConfigure
ln -r -s kernel/ghelper-pro.scm kernel/ghelper.scm
ln -r -s solve/nnsolve.scm solve/solve.scm
substituteInPlace load.scm \
--replace-fail '/usr/local/scmutils/' "$out/lib/mit-scheme/"
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
echo '(load "compile")' | mit-scheme --no-init-file --batch-mode --interactive
echo '(load "load") (disk-save "edwin-mechanics.com")' | mit-scheme --no-init-file --batch-mode --interactive
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p "$out/lib/mit-scheme/" "$out/share/scmutils" "$out/bin"
cp edwin-mechanics.com "$out/lib/mit-scheme/"
declare -r TARGET="$out/lib/mit-scheme/"
for SRC in $(find * -type f -name '*.bci'); do
install -d "$TARGET"scmutils/"$(dirname "$SRC")"
cp -a "$SRC" "$TARGET"scmutils/"$SRC"
done
# Convenience script to load the band
declare -r CMD="exec ${mitschemeX11}/bin/mit-scheme --band $out/lib/mit-scheme/edwin-mechanics.com"
echo "#!$SHELL" > $out/bin/scmutils
echo "$CMD" "\"\$@\"" >> $out/bin/scmutils
echo "#!$SHELL" > $out/bin/edwin-scmutils
echo "$CMD" "--edit" "\"\$@\"" >> $out/bin/edwin-scmutils
chmod uog+rx "$out/bin/scmutils" "$out/bin/edwin-scmutils"
ln -r -s "$out/bin/edwin-scmutils" "$out/bin/mechanics"
runHook postInstall
'';
meta = {
description = "Scheme library for mathematical physics";
longDescription = ''
Scmutils system is an integrated library of procedures,
embedded in the programming language Scheme, and intended
to support teaching and research in mathematical physics
and electrical engineering.
'';
homepage = "https://groups.csail.mit.edu/mac/users/gjs/6.5160/installation.html";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.fbeffa ];
};
})

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