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

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

View File

@@ -0,0 +1,34 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "grabserial";
version = "2.1.8";
format = "pyproject";
src = fetchFromGitHub {
owner = "tbird20d";
repo = "grabserial";
tag = "v${version}";
hash = "sha256-XHI5r4OkJUtMuH83jKvNttEpKpqARjxj9SDLzhSPxSc=";
};
build-system = [ python3Packages.setuptools ];
dependencies = [ python3Packages.pyserial ];
# no usable tests
doCheck = false;
meta = {
description = "Python based serial dump and timing program";
mainProgram = "grabserial";
homepage = "https://github.com/tbird20d/grabserial";
license = lib.licenses.gpl2;
maintainers = with lib.maintainers; [ vmandela ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
ocamlPackages,
}:
ocamlPackages.buildDunePackage rec {
pname = "gradescope_submit";
version = "2.0.2";
src = fetchFromGitHub {
owner = "nmittu";
repo = "gradescope-submit";
rev = version;
hash = "sha256-BVNXipgw0wz3PRGYvur8jrXZw/6i0fZ+MOZHzXzlFOk=";
};
buildInputs = with ocamlPackages; [
core
core_unix
cohttp
cohttp-lwt-unix
lambdasoup
toml
yojson
lwt_ssl
];
meta = with lib; {
description = "Small script to submit to Gradescope via GitHub";
homepage = "https://github.com/nmittu/gradescope-submit";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "submit";
};
}

View File

@@ -0,0 +1,88 @@
{
lib,
python3Packages,
fetchFromGitHub,
meson,
ninja,
appstream,
gtksourceview5,
desktop-file-utils,
gobject-introspection,
wrapGAppsHook4,
blueprint-compiler,
pkg-config,
libadwaita,
libportal-gtk4,
gnome,
librsvg,
webp-pixbuf-loader,
libsoup_3,
bash,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "gradia";
version = "1.9.0";
pyproject = false;
src = fetchFromGitHub {
owner = "AlexanderVanhee";
repo = "Gradia";
tag = "v${version}";
hash = "sha256-iDldzS7LLJ/+CfKBpD50LW/YrZ2xb8aqZI9Bs1AOcCM=";
};
nativeBuildInputs = [
meson
ninja
appstream
desktop-file-utils
gobject-introspection
wrapGAppsHook4
blueprint-compiler
pkg-config
];
buildInputs = [
gtksourceview5
libadwaita
libportal-gtk4
libsoup_3
bash
];
dependencies = with python3Packages; [
pygobject3
pillow
];
postInstall = ''
export GDK_PIXBUF_MODULE_FILE="${
gnome._gdkPixbufCacheBuilder_DO_NOT_USE {
extraLoaders = [
librsvg
webp-pixbuf-loader
];
}
}"
'';
dontWrapGApps = true;
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Make your screenshots ready for the world";
homepage = "https://github.com/AlexanderVanhee/Gradia";
changelog = "https://github.com/AlexanderVanhee/Gradia/releases/tag/${src.tag}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
Cameo007
quadradical
];
mainProgram = "gradia";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
installShellFiles,
gitUpdater,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gradle-completion";
version = "1.4.1";
src = fetchFromGitHub {
owner = "gradle";
repo = "gradle-completion";
rev = "v${finalAttrs.version}";
sha256 = "15b0692i3h8h7b95465b2aw9qf5qjmjag5n62347l8yl7zbhv3l2";
};
nativeBuildInputs = [
installShellFiles
];
strictDeps = true;
# we just move two files into $out,
# this shouldn't bother Hydra.
preferLocalBuild = true;
dontBuild = true;
installPhase = ''
runHook preInstall
installShellCompletion --name gradle \
--bash gradle-completion.bash \
--zsh _gradle
runHook postInstall
'';
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = {
description = "Gradle tab completion for bash and zsh";
homepage = "https://github.com/gradle/gradle-completion";
license = lib.licenses.mit;
teams = [ lib.teams.java ];
};
})

View File

@@ -0,0 +1,250 @@
{
"!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.",
"!version": 1,
"https://dl.google.com": {
"dl/android/maven2/com/android/tools#r8/8.2.33": {
"jar": "sha256-gMOaKLtmtk78Iy1orlVNWf44OICHOLT+WEiEaRyx5aM=",
"pom": "sha256-LgVrRdWEZxSbQSHxnpZpKdnMgFFpkrDKJKa/Y24aW+U="
}
},
"https://plugins.gradle.org/m2": {
"com/google/code/gson#gson-parent/2.9.1": {
"pom": "sha256-fKCEXnNoVhjePka9NDTQOko3PVIPq5OmgDGK1sjLKnk="
},
"com/google/code/gson#gson/2.9.1": {
"jar": "sha256-N4U04znm5tULFzb7Ort28cFdG+P0wTzsbVNkEuI9pgM=",
"pom": "sha256-5ZZjI9cUJXCzekvpeeIbwtroSBB+TcQW2PRNmqPwKQM="
},
"org/gradle/toolchains#foojay-resolver/0.7.0": {
"jar": "sha256-k2crR0Cg/b+7W68INT24rpqbsl9rEKk8B4EmxxfbOsA=",
"module": "sha256-7WdGoJ8yv63bkLApECrmIybiSBKaaLdGYqSkM9VTFLg=",
"pom": "sha256-iCa8+5Iq8MIR5BPTmwgWWRPAgwZkE+BzDNgrLgsKie4="
},
"org/gradle/toolchains/foojay-resolver-convention#org.gradle.toolchains.foojay-resolver-convention.gradle.plugin/0.7.0": {
"pom": "sha256-yKRD4vrvh28zijkSM8IKka1bg/acHGuiDTmns5EGJAo="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
},
"https://repo.maven.apache.org/maven2": {
"com/google/auto/value#auto-value-annotations/1.10.4": {
"jar": "sha256-4cRea+ra75eXyw2a/VpFYhrQYc2GMgEvhVgoU6OIeCU=",
"pom": "sha256-c6W4UV+F+IxAiff/SkPNF5Wkgf2rk/qQULE8+hqNJfc="
},
"com/google/auto/value#auto-value-parent/1.10.4": {
"pom": "sha256-vsOhnk3ci2QGZyMzzFBbngy2s1WLskIxSGm7bh1ojTA="
},
"com/google/code/findbugs#jsr305/3.0.2": {
"jar": "sha256-dmrSoHg/JoeWLIrXTO7MOKKLn3Ki0IXuQ4t4E+ko0Mc=",
"pom": "sha256-GYidvfGyVLJgGl7mRbgUepdGRIgil2hMeYr+XWPXjf4="
},
"com/google/errorprone#error_prone_annotations/2.23.0": {
"jar": "sha256-7G858Gi2/5rDI8aOKLkpn4wKgMpRLcyx1KcPQKw+wFQ=",
"pom": "sha256-1auxfyMbY78Ak1j6ZAKBt0SBDLlYflmUl3g0lZwH29g="
},
"com/google/errorprone#error_prone_parent/2.23.0": {
"pom": "sha256-9UcKSzEE/jCfvpSoDRbDxU0g90j0xd5PaKQoaI8wy9Q="
},
"com/google/guava#failureaccess/1.0.2": {
"jar": "sha256-io+Bz5s1nj9t+mkaHndphcBh7y8iPJssgHU+G0WOgGQ=",
"pom": "sha256-GevG9L207bs9B7bumU+Ea1TvKVWCqbVjRxn/qfMdA7I="
},
"com/google/guava#guava-parent/26.0-android": {
"pom": "sha256-+GmKtGypls6InBr8jKTyXrisawNNyJjUWDdCNgAWzAQ="
},
"com/google/guava#guava-parent/33.0.0-android": {
"pom": "sha256-WvSDt4xJ3njEn67dKlh1J4SkTINj9eJeUuKXgUwJF3o="
},
"com/google/guava#guava/33.0.0-android": {
"module": "sha256-FVcraAtd/L75ZtASDmUEEpqMf79gCEXfNp2Tkxe4IDY=",
"pom": "sha256-0R72awjIAS/3aC4LC8tykykyRwpQnXJSgD/GIeLJZfY="
},
"com/google/guava#guava/33.0.0-jre": {
"jar": "sha256-9NhcPk1BFpQzfLhzq+oJskK2ZLsBMyC+YQUyfEWZFTc="
},
"com/google/guava#listenablefuture/9999.0-empty-to-avoid-conflict-with-guava": {
"jar": "sha256-s3KgN9QjCqV/vv/e8w/WEj+cDC24XQrO0AyRuXTzP5k=",
"pom": "sha256-GNSx2yYVPU5VB5zh92ux/gXNuGLvmVSojLzE/zi4Z5s="
},
"com/google/j2objc#j2objc-annotations/2.8": {
"jar": "sha256-8CqV+hpele2z7YWf0Pt99wnRIaNSkO/4t03OKrf01u0=",
"pom": "sha256-N/h3mLGDhRE8kYv6nhJ2/lBzXvj6hJtYAMUZ1U2/Efg="
},
"com/google/truth#truth-parent/1.2.0": {
"pom": "sha256-Q8/2l2yxZ5ETlTWluYDpwTW8Fgxk7hGc/6qNHv9aquI="
},
"com/google/truth#truth/1.2.0": {
"jar": "sha256-tGEIQNXjffFOZqqwuEDA7j+l6Vl9o6KQIGQYcXHCM5o=",
"pom": "sha256-4snQPEXLKYR49KPOM37mXXsk+nVA/PSEy/OkvuQCuVo="
},
"junit#junit/4.13.2": {
"jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=",
"pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ="
},
"org/checkerframework#checker-qual/3.42.0": {
"jar": "sha256-zK7dM68LeJTZ8vO2RPTRnkOSjjKQLmGsTRB3eDD1qsc=",
"module": "sha256-4PpiK33mPq4RBH726RtMKtDx8OE8uQP/UggKR/V6V0Y=",
"pom": "sha256-v1/KqycvVMvPG753w72WPIIcmrrSBYcIvwvtPIdUlMo="
},
"org/hamcrest#hamcrest-core/1.3": {
"jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=",
"pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM="
},
"org/hamcrest#hamcrest-parent/1.3": {
"pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps="
},
"org/jetbrains#annotations/13.0": {
"jar": "sha256-rOKhDcji1f00kl7KwD5JiLLA+FFlDJS4zvSbob0RFHg=",
"pom": "sha256-llrrK+3/NpgZvd4b96CzuJuCR91pyIuGN112Fju4w5c="
},
"org/jetbrains/intellij/deps#trove4j/1.0.20200330": {
"jar": "sha256-xf1yW/+rUYRr88d9sTg8YKquv+G3/i8A0j/ht98KQ50=",
"pom": "sha256-h3IcuqZaPJfYsbqdIHhA8WTJ/jh1n8nqEP/iZWX40+k="
},
"org/jetbrains/kotlin#kotlin-android-extensions/1.9.22": {
"jar": "sha256-Hl6IFkKpnduPbRPmmVoIwZK8OEGHOWZj2ER8CB2H4k8=",
"pom": "sha256-lEt8+zPgpvtoRVkEjwKMuWMmyTKiRdXLAhQ7zSwDEVk="
},
"org/jetbrains/kotlin#kotlin-build-common/1.9.22": {
"jar": "sha256-U8PcxTA/WQPmJgrqc+zMaTD5o276KhHNO9On5V32OWY=",
"pom": "sha256-KXxfSYoHdIPvic06cQzSt/LlrjgPOjrt+5xBvGI7E0A="
},
"org/jetbrains/kotlin#kotlin-build-tools-api/1.9.22": {
"jar": "sha256-3UnLfij08zgvUlDPsFyGT9XwqW0yZbspPHezCtzJP/Y=",
"pom": "sha256-DFZLu4fcXs32Q005buob886Xar8IgYCN0Wb6SbBGSfs="
},
"org/jetbrains/kotlin#kotlin-build-tools-impl/1.9.22": {
"jar": "sha256-G0jW3gQqUl9jtVdROuEmbWmTSCJbAT+UDjLGPeJolCg=",
"pom": "sha256-tWM/E0m+lcdHRuHimiqm51LoneGrmmUjSS85j6aVWN0="
},
"org/jetbrains/kotlin#kotlin-compiler-embeddable/1.9.22": {
"jar": "sha256-K/6t7lmrGYjDNtvW5l2ZH3Zq4d2Gg/Km3tX6oCefDKA=",
"pom": "sha256-s9o0u29ClqzzoPRDRm8FBsbJnaXNliTW4LdFsiKHhOs="
},
"org/jetbrains/kotlin#kotlin-compiler-runner/1.9.22": {
"jar": "sha256-c+x1u5nr/6iySiSjuFPz9mCWvEapNRrw2sk967acFes=",
"pom": "sha256-pO6KZ8HW8lODjAAnKAvLgFCsDc3MrZdIlhOKaaAX6wE="
},
"org/jetbrains/kotlin#kotlin-daemon-client/1.9.22": {
"jar": "sha256-XXPhgVsRZ+Sv4gjwCyp1wIC8WoEHhsqtuOFHh1k6k7k=",
"pom": "sha256-YsRKZZ2lXbb7El4pKbmNUEow4fSvgU4I5JIUJqpST4o="
},
"org/jetbrains/kotlin#kotlin-daemon-embeddable/1.9.22": {
"jar": "sha256-kqV4ExcUR9U0Rh+hP+N9yM07f4bYPpsfe7GwvjBUH4s=",
"pom": "sha256-9uo9z2v7Og0GmER8SKa88I2Oqs+D/JX+nUGBpeXjwrE="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-annotations/1.9.22": {
"jar": "sha256-lnaDy5jZkQFFYH+/W0VilbQ/Cq+Tsbunv2mS5zHLJOw=",
"pom": "sha256-Y7por+B4/3D3CPnpecaTxFv+iQQfeWQbC4H2tKEm7rs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-api/1.9.22": {
"jar": "sha256-7P9nVGBlxg4JX7k7P4i5uS7R7cN+P+u8b57TVCL6QSs=",
"module": "sha256-H0SJxTBPmlEqVof/zAqvCTCvydcgUdOpBfrAcANi+3s=",
"pom": "sha256-ZAFewaGutVCqGCjCQuIoODDFD2g2TkCDH+FYj9wEEfU="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea-proto/1.9.22": {
"jar": "sha256-9dgu5hlmotmK364Z8k1hcwIsFUBIls3yNjQANe5owPU=",
"pom": "sha256-huMsqCkn2ogKHPNDpA7MIJgHXm/XInOzTVDfpUTzRjs="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-idea/1.9.22": {
"jar": "sha256-jRr4djLZUUjxIqn6CuKQPBnub6t9AeAX924NLJoCLCA=",
"module": "sha256-z+LCbjMPaAMsAD+lJMAx5aYPzo2Jn/8uQjFBKL60QCs=",
"pom": "sha256-3BSjKHVDun5QRs1OCVAtJ4hMqYfshwb1+xid54luOsw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin-model/1.9.22": {
"jar": "sha256-UQj61b4UmCXs46ABA8PCHPGv6VS7ZLhweJVyk511OMs=",
"module": "sha256-L/MBPfK6epteiwBOhIF1DI0PqVOtAHoZbYXSY2cdvq4=",
"pom": "sha256-gfUmlHml2X7oeSpITIMr495DgggSZxlhUAHKyI5C9qg="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.9.22": {
"module": "sha256-pPRqwMq9jVzbaJ0tN9GdWFhPcIv59k/+TpgKL/dTS7U=",
"pom": "sha256-A3750tSupA9JKdglE1g+STwOBRVuDaix1/Ujurhobyc="
},
"org/jetbrains/kotlin#kotlin-gradle-plugin/1.9.22/gradle82": {
"jar": "sha256-1OcY3V8wxrqTLZPM/FswFendPkQUOgUrh3Ao8frlQtw="
},
"org/jetbrains/kotlin#kotlin-gradle-plugins-bom/1.9.22": {
"module": "sha256-Qj401h0iCxoN3BgUCGqM6rTa2ed5ArDOjLRyG789xu0=",
"pom": "sha256-da2/XHjOJHwiuvNijQs/8c9+19N9YB66cwTXerdb3Z8="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-api/1.9.22": {
"jar": "sha256-jC9lQpwYLi5KLgnLkQ5iuW227tKFWUuPga+CO35ZROI=",
"pom": "sha256-EMrJcNMAo0icM/CzBBVv8DLZWVm+WqrDuIAoKtWGIv4="
},
"org/jetbrains/kotlin#kotlin-klib-commonizer-embeddable/1.9.22": {
"jar": "sha256-c/50PnTSEoPTg9C6voX9CMRCr8GnvYgIL42gUQ0FPUs=",
"pom": "sha256-dxghItppe2YqSRPX3Z/mu68ATOhH/YZ9oj6v8MTIJEs="
},
"org/jetbrains/kotlin#kotlin-native-utils/1.9.22": {
"jar": "sha256-eGwSfdVTXbLDmuWXzQsMrZ6RS4PiNvHbAlEjXMnGUqw=",
"pom": "sha256-EcUUwF7qOuno4Wq0l5bxEd9DxzSCMeNfr0xCjMT3Q+o="
},
"org/jetbrains/kotlin#kotlin-project-model/1.9.22": {
"jar": "sha256-zBHVwLGQnFsKCP0l7w51T/0r9Wyu9mX7eFEiI15UKhg=",
"pom": "sha256-659KFngb/ADM7IAw++XuIo5vKydxxQwmezIY/rAGW0A="
},
"org/jetbrains/kotlin#kotlin-reflect/1.6.10": {
"jar": "sha256-MnesECrheq0QpVq+x1/1aWyNEJeQOWQ0tJbnUIeFQgM=",
"pom": "sha256-V5BVJCdKAK4CiqzMJyg/a8WSWpNKBGwcxdBsjuTW1ak="
},
"org/jetbrains/kotlin#kotlin-script-runtime/1.9.22": {
"jar": "sha256-uAZwV59/ktRz2NWDTwsST3dVxFmP6UskQYOwKDSDRXQ=",
"pom": "sha256-/ra0ns9pEG1MEoXnH5ob2noSfO9oMC4+n9yCmKTjR5U="
},
"org/jetbrains/kotlin#kotlin-scripting-common/1.9.22": {
"jar": "sha256-+lAMvwNJQ++BJvPT3GWvCf+Z3//kTFCZtPwu1b8vXcc=",
"pom": "sha256-ROURI7DCfm/ZM/wma00Nrw8GhKYq7Z/mhC6Noz8qKz8="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-embeddable/1.9.22": {
"jar": "sha256-Ij/shIMCNEmc1MeiPqHJLroSfEGzXZux1LYdJBVa6zU=",
"pom": "sha256-wWCPP7yyqfdSPq0zWZwurc5MgSFhqeBmufSwBa97Qxw="
},
"org/jetbrains/kotlin#kotlin-scripting-compiler-impl-embeddable/1.9.22": {
"jar": "sha256-OJkYFqKH/3YkHxp35/ERZIHU6To9tjJZplfd4g5tD2U=",
"pom": "sha256-gmccM6lXsuKoINZqaSwvzmPjvwR/HLJeb7A5HF3c8uc="
},
"org/jetbrains/kotlin#kotlin-scripting-jvm/1.9.22": {
"jar": "sha256-jRJ9dvz6BRfDbB6g4ijs4D1aRoJkKgH2R5prvccxKik=",
"pom": "sha256-cBJS6huo/4f8M0dqYePVxtnS3aQbqpiZTdaYDuE/vG0="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.9.22": {
"jar": "sha256-ar4UbCeGQTi4dMzM/l9TTj65I8maG3tdRUlO5WlPPgo=",
"module": "sha256-9IIxS1B5wUVfb7DUJXp0XRAcYSTOlhUiuob53JCQHkc=",
"pom": "sha256-zOLxUoXsgHijd0a1cwigVAQt1cwlQgxD9zt4V8JGjwM="
},
"org/jetbrains/kotlin#kotlin-stdlib/1.9.22/all": {
"jar": "sha256-zsOLwzAucqiq+c3kNrWpBx7gMx4q0F6E2LuJczTX6dQ="
},
"org/jetbrains/kotlin#kotlin-tooling-core/1.9.22": {
"jar": "sha256-iTjrl+NjINqj5vsqYP0qBbIy/0pVcXPFAZ8EW4gy2fQ=",
"pom": "sha256-FPx/NcY15fzRvqU3q0+kQxLoQyUtUzNRnjaxJeoImyE="
},
"org/jetbrains/kotlin#kotlin-util-io/1.9.22": {
"jar": "sha256-9telhJGjeLCDrRvq1IikheEdFgsx52wYwa1SDx0o9Gs=",
"pom": "sha256-ZP1qINbsBAE7ttdWJ/ZYC7c2QdlIkJ1cFmTi53MQbe4="
},
"org/jetbrains/kotlin#kotlin-util-klib/1.9.22": {
"jar": "sha256-pnnuL1EPOrkmkYGN5etbCQLobYjJdnTn20TcTyJSxfk=",
"pom": "sha256-Dep9//Cit0CIrJlwQ8vCQINdK/9Zs5/MiwysbqPrNpc="
},
"org/jetbrains/kotlinx#kotlinx-coroutines-core-jvm/1.5.0": {
"jar": "sha256-eNbMcTX4TWkv83Uvz9H6G74JQNffcGUuTx6u7Ax4r7s=",
"module": "sha256-yIXdAoEHbFhDgm3jF+PLzcPYhZ2+71OuHPrNG5xg+W4=",
"pom": "sha256-U2IuA3eN+EQPwBIgGjW7S9/kAWTv7GErvvze7LL/wqs="
},
"org/ow2#ow2/1.5.1": {
"pom": "sha256-Mh3bt+5v5PU96mtM1tt0FU1r+kI5HB92OzYbn0hazwU="
},
"org/ow2/asm#asm/9.6": {
"jar": "sha256-PG+sJCTbPUqFO2afTj0dnDxVIjXhmjGWc/iHCDwjA6E=",
"pom": "sha256-ku7iS8PIQ+SIHUbB3WUFRx7jFC+s+0ZrQoz+paVsa2A="
},
"org/sonatype/oss#oss-parent/7": {
"pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ="
},
"org/sonatype/oss#oss-parent/9": {
"pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno="
}
}
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
gradle,
makeBinaryWrapper,
jre_headless,
zulu11,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gradle-dependency-tree-diff";
version = "1.2.1";
src = fetchFromGitHub {
owner = "JakeWharton";
repo = "dependency-tree-diff";
tag = finalAttrs.version;
hash = "sha256-7ObmZygzSp7aAnqsJuMcPk+I3z993kjHCJMug3JkONg=";
};
nativeBuildInputs = [
gradle
makeBinaryWrapper
];
mitmCache = gradle.fetchDeps {
inherit (finalAttrs) pname;
data = ./deps.json;
};
__darwinAllowLocalNetworking = true;
# There is a requirement on the specific Java toolchain.
gradleFlags = [ "-Dorg.gradle.java.home=${zulu11}" ];
gradleBuildTask = "build";
doCheck = true;
installPhase = ''
runHook preInstall
install -Dm644 build/dependency-tree-diff.jar \
$out/share/dependency-tree-diff/dependency-tree-diff.jar
makeWrapper ${lib.getExe jre_headless} $out/bin/dependency-tree-diff \
--add-flags "-jar $out/share/dependency-tree-diff/dependency-tree-diff.jar"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Intelligent diff tool for the output of Gradle's dependencies task";
mainProgram = "dependency-tree-diff";
homepage = "https://github.com/JakeWharton/dependency-tree-diff";
changelog = "https://github.com/JakeWharton/dependency-tree-diff/releases/tag/${finalAttrs.version}";
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode
];
license = lib.licenses.asl20;
maintainers = [ lib.maintainers.progrm_jarvis ];
inherit (jre_headless.meta) platforms;
badPlatforms = [
# Currently fails to build on Darwin due to `Could not connect to the Gradle daemon.` error
lib.systems.inspect.patterns.isDarwin
];
};
})

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchurl,
bison,
flex,
pam,
udevCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gradm";
version = "3.1-202111052217";
src = fetchurl {
url = "https://grsecurity.net/stable/gradm-${finalAttrs.version}.tar.gz";
hash = "sha256-JFkpDzZ6R8ihzk6i7Ag1l5nqM9wV7UQ2Q5WWzogoT7k=";
};
nativeBuildInputs = [
bison
flex
udevCheckHook
];
buildInputs = [ pam ];
enableParallelBuilding = true;
makeFlags = [
"DESTDIR=${placeholder "out"}"
"LEX=${flex}/bin/flex"
"MANDIR=/share/man"
"MKNOD=true"
];
preBuild = ''
substituteInPlace Makefile \
--replace "/usr/bin/" "" \
--replace "/usr/include/security/pam_" "${pam}/include/security/pam_"
substituteInPlace gradm_defs.h \
--replace "/sbin/grlearn" "$out/bin/grlearn" \
--replace "/sbin/gradm" "$out/bin/gradm" \
--replace "/sbin/gradm_pam" "$out/bin/gradm_pam"
echo 'inherit-learn /nix/store' >>learn_config
mkdir -p "$out/etc/udev/rules.d"
'';
doInstallCheck = true;
postInstall = "rmdir $out/dev";
meta = {
description = "grsecurity RBAC administration and policy analysis utility";
homepage = "https://grsecurity.net";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
thoughtpolice
joachifm
];
};
})

View File

@@ -0,0 +1,153 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
buildGoModule,
systemd,
yarn,
fixup-yarn-lock,
nodejs,
grafana-alloy,
nixosTests,
nix-update-script,
installShellFiles,
testers,
}:
buildGoModule rec {
pname = "grafana-alloy";
version = "1.11.0";
src = fetchFromGitHub {
owner = "grafana";
repo = "alloy";
tag = "v${version}";
hash = "sha256-nE8R3llMWr5OqqFUoGP9alCgJVEvCeE8Ea2+g3d3fAk=";
};
proxyVendor = true;
vendorHash = "sha256-8n1r2Wun5ZSvjsU2Vl/fSRoQnTfKbrcQI6a7YDX/HZA=";
nativeBuildInputs = [
fixup-yarn-lock
yarn
nodejs
installShellFiles
];
ldflags =
let
prefix = "github.com/grafana/alloy/internal/build";
in
[
"-s"
"-w"
# https://github.com/grafana/alloy/blob/3201389252d2c011bee15ace0c9f4cdbcb978f9f/Makefile#L110
"-X ${prefix}.Branch=v${version}"
"-X ${prefix}.Version=${version}"
"-X ${prefix}.Revision=v${version}"
"-X ${prefix}.BuildUser=nix"
"-X ${prefix}.BuildDate=1970-01-01T00:00:00Z"
];
tags = [
"netgo"
"builtinassets"
"promtail_journal_enabled"
];
subPackages = [
"."
];
# Skip building the frontend in the goModules FOD
overrideModAttrs = (
_: {
preBuild = null;
}
);
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/internal/web/ui/yarn.lock";
hash = "sha256-oCDP2XJczLXgzEjyvFEIFBanlnzjrj0So09izG5vufs=";
};
preBuild = ''
pushd internal/web/ui
# Yarn wants a real home directory to write cache, config, etc to
export HOME=$NIX_BUILD_TOP/fake_home
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules/
yarn --offline build
popd
'';
# uses go-systemd, which uses libsystemd headers
# https://github.com/coreos/go-systemd/issues/351
NIX_CFLAGS_COMPILE = lib.optionals stdenv.hostPlatform.isLinux [
"-I${lib.getDev systemd}/include"
];
checkFlags = [
"-tags nonetwork" # disable network tests
"-tags nodocker" # disable docker tests
];
# go-systemd uses libsystemd under the hood, which does dlopen(libsystemd) at
# runtime.
# Add to RUNPATH so it can be found.
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
patchelf \
--set-rpath "${
lib.makeLibraryPath [ (lib.getLib systemd) ]
}:$(patchelf --print-rpath $out/bin/alloy)" \
$out/bin/alloy
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd alloy \
--bash <($out/bin/alloy completion bash) \
--fish <($out/bin/alloy completion fish) \
--zsh <($out/bin/alloy completion zsh)
'';
passthru = {
tests = {
inherit (nixosTests) alloy;
version = testers.testVersion {
version = "v${version}";
package = grafana-alloy;
};
};
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"v(.+)"
];
};
# alias for nix-update to be able to find and update this attribute
offlineCache = yarnOfflineCache;
};
meta = with lib; {
description = "Open source OpenTelemetry Collector distribution with built-in Prometheus pipelines and support for metrics, logs, traces, and profiles";
mainProgram = "alloy";
license = licenses.asl20;
homepage = "https://grafana.com/oss/alloy";
changelog = "https://github.com/grafana/alloy/blob/${src.rev}/CHANGELOG.md";
maintainers = with maintainers; [
azahi
flokli
hbjydev
];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,39 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "grafana-dash-n-grab";
version = "0.8.1";
src = fetchFromGitHub {
rev = "v${version}";
owner = "esnet";
repo = "gdg";
sha256 = "sha256-Rt7MUiC8zTL4Ni18FKdzkk30G5fCH6ZxBxpHePO3/LE=";
};
vendorHash = "sha256-3BR3tB2CLT7aT+0DsKqA3rwle1RoJRv1/i38HBYkL/0=";
ldflags = [
"-s"
"-w"
"-X main.Version=${version}"
"-X github.com/esnet/gdg/version.GitCommit=${src.rev}"
];
# The test suite tries to communicate with a running version of grafana locally. This fails if
# you don't have grafana running.
doCheck = false;
meta = {
description = "Grafana Dash-n-Grab (gdg) -- backup and restore Grafana dashboards, datasources, and other entities";
license = lib.licenses.bsd3;
homepage = "https://github.com/esnet/gdg";
teams = [ lib.teams.bitnomial ];
mainProgram = "gdg";
changelog = "https://github.com/esnet/gdg/releases/tag/v${version}";
};
}

View File

@@ -0,0 +1,109 @@
{
"name": "renderer",
"version": "1.0.0",
"author": "Grafana Labs",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/grafana/grafana-image-renderer.git"
},
"scripts": {
"eslint": "eslint .",
"typecheck": "tsc --noEmit",
"prettier:check": "prettier --list-different \"**/*.ts\"",
"prettier:write": "prettier --list-different \"**/*.ts\" --write",
"precommit": "npm run eslint & npm run typecheck",
"watch": "tsc-watch --onSuccess \"node build/app.js server --config=dev.json\"",
"watch:debug": "tsc-watch --onSuccess \"cross-env DEBUG=puppeteer-cluster:* node build/app.js server --config=dev.json\"",
"build": "tsc",
"start": "node build/app.js server --config=dev.json",
"create-gcom-plugin-json": "ts-node scripts/createGcomPluginJson.ts ./scripts/tmp",
"push-to-gcom": "sh ./scripts/push-to-gcom.sh",
"test-update": "cross-env UPDATE_GOLDEN=true jest",
"test": "sh ./scripts/run_tests.sh",
"test-ci": "jest",
"test-diff": "cross-env SAVE_DIFF=true jest"
},
"dependencies": {
"@grpc/grpc-js": "^1.8.22",
"@grpc/proto-loader": "^0.7.2",
"@hapi/boom": "^10.0.0",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/auto-instrumentations-node": "^0.49.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.52.1",
"@opentelemetry/resources": "^1.25.1",
"@opentelemetry/sdk-node": "^0.52.1",
"@opentelemetry/semantic-conventions": "^1.25.1",
"@puppeteer/browsers": "^2.3.1",
"chokidar": "^3.5.2",
"dompurify": "^3.2.4",
"express": "^4.21.1",
"express-prom-bundle": "^6.5.0",
"ioredis": "^5.6.1",
"jimp": "^0.22.12",
"jsdom": "20.0.0",
"lodash": "^4.17.21",
"minimist": "^1.2.6",
"morgan": "^1.9.0",
"multer": "^2.0.2",
"on-finished": "^2.3.0",
"poolpeteer": "^0.24.0",
"prom-client": "^14.1.0",
"puppeteer": "^22.8.2",
"puppeteer-cluster": "^0.24.0",
"rate-limiter-flexible": "^7.0.0",
"tar-fs": "^3.0.9",
"unique-filename": "^2.0.1",
"winston": "^3.8.2"
},
"devDependencies": {
"@eslint/js": "^9.31.0",
"@grafana/eslint-config": "^8.1.0",
"@grafana/sign-plugin": "^3.1.3",
"@stylistic/eslint-plugin-ts": "^4.4.1",
"@types/content-disposition": "^0.5.9",
"@types/express": "^4.17.14",
"@types/jest": "^29.5.12",
"@types/jsdom": "20.0.0",
"@types/lodash": "^4.17.20",
"@types/minimist": "^1.2.5",
"@types/morgan": "^1.9.10",
"@types/multer": "^1.4.7",
"@types/node": "^20.17.27",
"@types/pixelmatch": "^5.2.6",
"@types/supertest": "^2.0.15",
"@typescript-eslint/eslint-plugin": "^8.37.0",
"@typescript-eslint/parser": "^8.37.0",
"@yao-pkg/pkg": "^6.3.0",
"axios": "1.8.2",
"cross-env": "7.0.3",
"eslint": "^9.31.0",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-jsdoc": "^51.4.1",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"fast-png": "^6.2.0",
"jest": "^29.7.0",
"jsonwebtoken": "^9.0.2",
"lint-staged": "13.0.3",
"prettier": "2.7.1",
"supertest": "^7.0.0",
"ts-jest": "^29.1.1",
"ts-node": "10.9.1",
"tsc-watch": "5.0.3",
"typescript": "^5.8.3",
"typescript-eslint": "^8.37.0"
},
"lint-staged": {
"*.ts": [
"prettier --write"
]
},
"pkg": {
"assets": "proto/*"
},
"bin": "build/app.js",
"engines": {
"node": ">= 22"
}
}

View File

@@ -0,0 +1,75 @@
{
lib,
mkYarnPackage,
fetchFromGitHub,
fetchYarnDeps,
nodejs,
runtimeShell,
}:
# Notes for the upgrade:
# * Download the tarball of the new version to use.
# * Replace new `package.json` here.
# * Update `version`+`hash` and rebuild.
mkYarnPackage rec {
pname = "grafana-image-renderer";
version = "4.0.14";
src = fetchFromGitHub {
owner = "grafana";
repo = "grafana-image-renderer";
rev = "v${version}";
hash = "sha256-CoQTOzQ7h31B3U0yvJYsgC3uaSyjNNLpD+8uMN+naiQ=";
};
offlineCache = fetchYarnDeps {
yarnLock = src + "/yarn.lock";
hash = "sha256-xZrIoQlPeyGTbFRUQ0M8Tc6YpzsC5IACW0bbZ+HnsOQ=";
};
packageJSON = ./package.json;
buildPhase = ''
runHook preBuild
pushd deps/renderer
yarn run build
popd
runHook postBuild
'';
dontInstall = true;
distPhase = ''
runHook preDist
shopt -s extglob
pushd deps/renderer
install_path="$out/libexec/grafana-image-renderer"
mkdir -p $install_path
cp -R ../../node_modules $install_path
cp -R ./!(node_modules) $install_path
popd
mkdir -p $out/bin
cat >$out/bin/grafana-image-renderer <<EOF
#! ${runtimeShell}
${nodejs}/bin/node $install_path/build/app.js \$@
EOF
chmod +x $out/bin/grafana-image-renderer
runHook postDist
'';
meta = with lib; {
homepage = "https://github.com/grafana/grafana-image-renderer";
description = "Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)";
mainProgram = "grafana-image-renderer";
license = licenses.asl20;
maintainers = with maintainers; [ ma27 ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
chromium,
makeWrapper,
}:
buildGoModule rec {
pname = "grafana-kiosk";
version = "1.0.9";
src = fetchFromGitHub {
owner = "grafana";
repo = "grafana-kiosk";
rev = "v${version}";
hash = "sha256-kh62qGMVHNTssQMEBwLaEW0tRtP3iWMrxXeQU+fe+44=";
};
vendorHash = "sha256-LZLmXGPYvNR4meqen0h0UHj62392hfPs9BLNK+X6sKA=";
nativeBuildInputs = [ makeWrapper ];
postFixup = ''
wrapProgram $out/bin/grafana-kiosk --prefix PATH : ${lib.makeBinPath [ chromium ]}
'';
meta = with lib; {
description = "Kiosk Utility for Grafana";
homepage = "https://github.com/grafana/grafana-kiosk";
changelog = "https://github.com/grafana/grafana-kiosk/blob/${src.rev}/CHANGELOG.md";
license = licenses.asl20;
maintainers = with maintainers; [ marcusramberg ];
mainProgram = "grafana-kiosk";
};
}

View File

@@ -0,0 +1,88 @@
{
stdenv,
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
nix-update-script,
nixosTests,
systemd,
testers,
grafana-loki,
}:
buildGoModule rec {
version = "3.5.5";
pname = "grafana-loki";
src = fetchFromGitHub {
owner = "grafana";
repo = "loki";
rev = "v${version}";
hash = "sha256-nNmY3LrRhrTGQBtnjQ2V252cAvJp2F6D2XHCkcvFfn8=";
};
vendorHash = null;
subPackages = [
# TODO split every executable into its own package
"cmd/loki"
"cmd/loki-canary"
"clients/cmd/promtail"
"cmd/logcli"
"cmd/lokitool"
];
tags = [ "promtail_journal_enabled" ];
nativeBuildInputs = [ makeWrapper ];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ systemd.dev ];
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
wrapProgram $out/bin/promtail \
--prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
'';
passthru = {
tests = {
inherit (nixosTests) loki;
version = testers.testVersion {
command = "loki --version";
package = grafana-loki;
};
};
updateScript = nix-update-script { };
};
ldflags =
let
t = "github.com/grafana/loki/v3/pkg/util/build";
in
[
"-s"
"-w"
"-X ${t}.Version=${version}"
"-X ${t}.BuildUser=nix@nixpkgs"
"-X ${t}.BuildDate=unknown"
"-X ${t}.Branch=unknown"
"-X ${t}.Revision=unknown"
];
meta = {
description = "Like Prometheus, but for logs";
mainProgram = "promtail";
license = with lib.licenses; [
agpl3Only
asl20
];
homepage = "https://grafana.com/oss/loki/";
changelog = "https://github.com/grafana/loki/releases/tag/v${version}";
maintainers = with lib.maintainers; [
globin
mmahut
emilylange
ryan4yin
];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
buildGoModule,
fetchFromGitHub,
fetchpatch2,
tetex,
makeWrapper,
}:
buildGoModule rec {
pname = "reporter";
version = "2.3.1";
src = fetchFromGitHub {
rev = "v${version}";
owner = "IzakMarais";
repo = "reporter";
hash = "sha256-lsraJwx56I2Gn8CePWUlQu1qdMp78P4xwPzLxetYUcw=";
};
nativeBuildInputs = [ makeWrapper ];
vendorHash = "sha256-QlNOx2jm1LVz066t9khppf//T5c9z3YUrSOr6qzbUzI=";
patches = [
(fetchpatch2 {
name = "use-go-mod-and-remove-vendor-dirs";
url = "https://github.com/IzakMarais/reporter/commit/e844b3f624e0da3a960f98cade427fe54f595504.patch";
hash = "sha256-CdI7/mkYG6t6H6ydGu7atwk18DpagdP7uzfrZVKKlhA=";
})
];
postInstall = ''
wrapProgram $out/bin/grafana-reporter \
--prefix PATH : ${lib.makeBinPath [ tetex ]}
'';
meta = {
description = "PDF report generator from a Grafana dashboard";
mainProgram = "grafana-reporter";
homepage = "https://github.com/IzakMarais/reporter";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.disassembler ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage {
pname = "grafana-to-ntfy";
version = "0-unstable-2025-01-25";
src = fetchFromGitHub {
owner = "kittyandrew";
repo = "grafana-to-ntfy";
rev = "64d11f553776bbf7695d9febd74da1bad659352d";
hash = "sha256-GO9VE9wymRk+QKGFyDpd0wS9GCY3pjpFUe37KIcnKxc=";
};
cargoHash = "sha256-w4HSxdihElPz0q05vWjajQ9arZjAzd82L0kEKk1Uk8s=";
meta = {
description = "Bridge to forward Grafana alerts to ntfy.sh notification service";
homepage = "https://github.com/kittyandrew/grafana-to-ntfy";
license = lib.licenses.agpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ kranzes ];
mainProgram = "grafana-to-ntfy";
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "grafanactl";
version = "0.1.5";
src = fetchFromGitHub {
owner = "grafana";
repo = "grafanactl";
tag = "v${finalAttrs.version}";
hash = "sha256-XHcNyPSN01CGkuj9p54yAAWFlwoWLF6cm5Q2f8iZtVM=";
};
vendorHash = "sha256-fHlktADqw3p377g3vXr2LZdBfWfNZOHxnp9H8/C31Gg=";
ldflags = [
"-X main.version=v${finalAttrs.version}"
"-X main.commit=unknown"
"-X main.date=unknown"
];
subPackage = [ "cmd/grafanactl" ];
postInstall = ''
rm $out/bin/cmd-reference
rm $out/bin/config-reference
rm $out/bin/env-vars-reference
'';
doInstallCheck = true;
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "Tool designed to simplify interaction with Grafana instances";
homepage = "https://github.com/grafana/grafanactl";
changelog = "https://github.com/grafana/grafanactl/tags/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ wcarlsen ];
mainProgram = "grafanactl";
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "grafterm";
version = "0.2.0";
src = fetchFromGitHub {
owner = "slok";
repo = "grafterm";
rev = "v${version}";
hash = "sha256-0pM36rAmwx/P1KAlmVaGoSj8eb9JucYycNC2R867dVo=";
};
vendorHash = "sha256-veg5B68AQhkSZg8YA/e4FbqJNG0YGwnUQFsAdscz0QI=";
ldflags = [
"-s"
"-w"
"-X main.Version=${version}"
];
meta = with lib; {
description = "Command-line tool for rendering metrics dashboards inspired by Grafana";
homepage = "https://github.com/slok/grafterm";
license = licenses.asl20;
maintainers = with maintainers; [ arikgrahl ];
mainProgram = "grafterm";
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchurl,
SDL,
SDL_image,
SDL_ttf,
installShellFiles,
fontconfig,
libpng,
libtiff,
lua5,
pkg-config,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "grafx2";
version = "2.8.3091";
outputs = [
"out"
"man"
];
src = fetchurl {
name = "grafx2-${finalAttrs.version}.tar.gz";
url = "https://pulkomandy.tk/projects/GrafX2/downloads/65";
hash = "sha256-KdY7GUhQp/Q7t/ktLPGxI66ZHy2gDAffn2yB5pmcJCM=";
};
postPatch = ''
substituteInPlace misc/unix/grafx2.desktop \
--replace "Exec=grafx2" "Exec=grafx2-sdl"
'';
nativeBuildInputs = [
installShellFiles
pkg-config
];
buildInputs = [
SDL
SDL_image
SDL_ttf
fontconfig
libpng
libtiff
lua5
zlib
];
strictDeps = false; # Why??
makeFlags = [ "-C src" ];
installFlags = [
"-C src"
"PREFIX=$(out)"
];
postInstall = ''
installManPage misc/unix/grafx2.1
'';
meta = {
homepage = "http://grafx2.eu/";
description = "Ultimate 256-color painting program";
longDescription = ''
GrafX2 is a bitmap paint program inspired by the Amiga programs Deluxe
Paint and Brilliance. Specialized in 256-color drawing, it includes a very
large number of tools and effects that make it particularly suitable for
pixel art, game graphics, and generally any detailed graphics painted with
a mouse.
The program is mostly developed on Haiku, Linux and Windows, but is also
portable on many other platforms.
'';
license = with lib.licenses; [ gpl2Plus ];
mainProgram = "grafx2-sdl";
maintainers = [ ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,42 @@
{
enableX11 ? true,
lib,
stdenv,
fetchurl,
pkg-config,
xorg,
python3,
frame,
}:
stdenv.mkDerivation rec {
pname = "grail";
version = "3.1.1";
src = fetchurl {
url = "https://launchpad.net/grail/trunk/${version}/+download/${pname}-${version}.tar.bz2";
sha256 = "1wwx5ibjdz5pyd0f5cd1n91y67r68dymxpm2lgd829041xjizvay";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
python3
frame
]
++ lib.optionals enableX11 [
xorg.libX11
xorg.libXtst
xorg.libXext
xorg.libXi
xorg.libXfixes
];
configureFlags = lib.optional enableX11 "--with-x11";
meta = {
homepage = "https://launchpad.net/canonical-multitouch/grail";
description = "Gesture Recognition And Instantiation Library";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenvNoCC,
fetchYarnDeps,
fetchFromGitHub,
yarnConfigHook,
yarnInstallHook,
nodejs,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "gramma";
version = "1.6.0";
src = fetchFromGitHub {
owner = "caderek";
repo = "gramma";
tag = "v${finalAttrs.version}";
hash = "sha256-gfBwKpsttdhjD/Opn8251qskURpwLX2S5NSbpwP3hFg=";
};
postPatch = ''
# Set a script name to avoid yargs using cli.js as $0
substituteInPlace src/cli.js \
--replace-fail '.demandCommand()' '.demandCommand().scriptName("gramma")'
'';
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-FuR6wUhAaej/vMgjAlICMEj1pPf+7PFrdu2lTFshIkg=";
};
nativeBuildInputs = [
yarnConfigHook
yarnInstallHook
nodejs
];
passthru.updateScript = nix-update-script { };
meta = {
description = "Command-line grammar checker";
homepage = "https://caderek.github.io/gramma/";
changelog = "https://github.com/caderek/gramma/releases/tag/v${finalAttrs.version}";
license = lib.licenses.isc;
mainProgram = "gramma";
maintainers = with lib.maintainers; [ pyrox0 ];
};
})

View File

@@ -0,0 +1,19 @@
diff --git a/gramps/gen/utils/grampslocale.py b/gramps/gen/utils/grampslocale.py
index f25030e..59c1c90 100644
--- a/gramps/gen/utils/grampslocale.py
+++ b/gramps/gen/utils/grampslocale.py
@@ -370,8 +370,12 @@ class GrampsLocale:
)
else:
# bug12278, _build_popup_ui() under linux and macOS
- locale.textdomain(self.localedomain)
- locale.bindtextdomain(self.localedomain, self.localedir)
+ if hasattr(locale, 'textdomain'):
+ locale.textdomain(self.localedomain)
+ locale.bindtextdomain(self.localedomain, self.localedir)
+ else:
+ gettext.textdomain(self.localedomain)
+ gettext.bindtextdomain(self.localedomain, self.localedir)
self.rtl_locale = False
if self.language[0] in _RTL_LOCALES:

View File

@@ -0,0 +1,13 @@
diff --git a/gramps/gui/grampsgui.py b/gramps/gui/grampsgui.py
index 26ef1a2..217e2a6 100644
--- a/gramps/gui/grampsgui.py
+++ b/gramps/gui/grampsgui.py
@@ -575,7 +575,7 @@ class Gramps:
if (
lin()
- and "SNAP" not in os.environ
+ and False
and glocale.lang != "C"
and not gettext.find(GTK_GETTEXT_DOMAIN)
):

View File

@@ -0,0 +1,126 @@
{
stdenv,
lib,
fetchFromGitHub,
gtk3,
python3Packages,
glibcLocales,
intltool,
gexiv2,
pango,
gobject-introspection,
wrapGAppsHook3,
gettext,
desktopToDarwinBundle,
# Optional packages:
enableOSM ? true,
osm-gps-map,
glib-networking,
enableGraphviz ? true,
graphviz,
enableGhostscript ? true,
ghostscript,
}:
python3Packages.buildPythonApplication rec {
version = "6.0.5";
pname = "gramps";
pyproject = true;
src = fetchFromGitHub {
owner = "gramps-project";
repo = "gramps";
tag = "v${version}";
hash = "sha256-mCc79h+XovUSaehybIa64zR5hutbNh705Uil58sQh7I=";
};
patches = [
# textdomain doesn't exist as a property on locale when running on Darwin
./check-locale-hasattr-textdomain.patch
# disables the startup warning about bad GTK installation
./disable-gtk-warning-dialog.patch
];
build-system = [
python3Packages.setuptools
];
dependencies = with python3Packages; [
berkeleydb
orjson
pyicu
pygobject3
pycairo
];
nativeBuildInputs = [
wrapGAppsHook3
intltool
gettext
gobject-introspection
];
nativeCheckInputs = [
glibcLocales
python3Packages.unittestCheckHook
python3Packages.jsonschema
python3Packages.mock
python3Packages.lxml
]
# TODO: use JHBuild to build the Gramps' bundle
++ lib.optionals stdenv.hostPlatform.isDarwin [
desktopToDarwinBundle
];
buildInputs = [
gtk3
pango
gexiv2
]
# Map support
++ lib.optionals enableOSM [
osm-gps-map
glib-networking
]
# Graphviz support
++ lib.optional enableGraphviz graphviz
# Ghostscript support
++ lib.optional enableGhostscript ghostscript;
preCheck = ''
export HOME=$(mktemp -d)
mkdir .git # Make gramps think that it's not in an installed state
'';
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
)
'';
# https://github.com/NixOS/nixpkgs/issues/149812
# https://nixos.org/manual/nixpkgs/stable/#ssec-gnome-hooks-gobject-introspection
strictDeps = false;
meta = with lib; {
description = "Genealogy software";
mainProgram = "gramps";
homepage = "https://gramps-project.org";
maintainers = with maintainers; [
jk
pinpox
tomasajt
];
changelog = "https://github.com/gramps-project/gramps/blob/${src.tag}/ChangeLog";
longDescription = ''
Every person has their own story but they are also part of a collective
family history. Gramps gives you the ability to record the many details of
an individual's life as well as the complex relationships between various
people, places and events. All of your research is kept organized,
searchable and as precise as you need it to be.
'';
license = licenses.gpl2Plus;
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
index d231e3d1..73f389a2 100644
--- a/resources/CMakeLists.txt
+++ b/resources/CMakeLists.txt
@@ -62,7 +62,7 @@ if(WIN32)
DEPENDS "${CMAKE_SOURCE_DIR}/resources/GrandOrgue.manifest")
LIST(APPEND DEPLIST "${RESOURCEDIR}/GOIcon.ico" "${RESOURCEDIR}/GrandOrgue.rc" "${RESOURCEDIR}/GrandOrgue.manifest")
elseif(APPLE)
- ADD_CUSTOM_COMMAND(OUTPUT "${RESOURCEDIR}/GrandOrgue.icns" COMMAND iconutil -c icns --output "${RESOURCEDIR}/GrandOrgue.icns" ${GENERATED_ICONS_DIR} DEPENDS ${GENERATED_ICONS})
+ ADD_CUSTOM_COMMAND(OUTPUT "${RESOURCEDIR}/GrandOrgue.icns" COMMAND png2icns "${RESOURCEDIR}/GrandOrgue.icns" ${GENERATED_ICONS_DIR}/*{16,32,128,256,512,1024}.png DEPENDS ${GENERATED_ICONS})
INSTALL(FILES "${RESOURCEDIR}/GrandOrgue.icns" DESTINATION "${RESOURCEINSTDIR}")
LIST(APPEND DEPLIST "${RESOURCEDIR}/GrandOrgue.icns")
elseif(UNIX)

View File

@@ -0,0 +1,85 @@
{
lib,
stdenv,
fetchFromGitHub,
wrapGAppsHook3,
cmake,
pkg-config,
fftwFloat,
alsa-lib,
zlib,
wavpack,
wxGTK32,
udev,
jackaudioSupport ? false,
libjack2,
imagemagick,
libicns,
yaml-cpp,
makeWrapper,
includeDemo ? true,
}:
stdenv.mkDerivation rec {
pname = "grandorgue";
version = "3.16.1-1";
src = fetchFromGitHub {
owner = "GrandOrgue";
repo = "grandorgue";
tag = version;
fetchSubmodules = true;
hash = "sha256-GaO05zFurxnOOUjUpeR5j0lP4EYR/EgxFpdgwfYHG9M=";
};
patches = [ ./darwin-fixes.patch ];
nativeBuildInputs = [
cmake
pkg-config
imagemagick
libicns
makeWrapper
wrapGAppsHook3
];
buildInputs = [
fftwFloat
zlib
wavpack
wxGTK32
yaml-cpp
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
udev
]
++ lib.optional jackaudioSupport libjack2;
cmakeFlags =
lib.optionals (!jackaudioSupport) [
"-DRTAUDIO_USE_JACK=OFF"
"-DRTMIDI_USE_JACK=OFF"
"-DGO_USE_JACK=OFF"
"-DINSTALL_DEPEND=OFF"
]
++ lib.optional (!includeDemo) "-DINSTALL_DEMO=OFF";
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/{Applications,bin,lib}
mv $out/GrandOrgue.app $out/Applications/
for lib in $out/Applications/GrandOrgue.app/Contents/Frameworks/lib*; do
ln -s $lib $out/lib/
done
makeWrapper $out/{Applications/GrandOrgue.app/Contents/MacOS,bin}/GrandOrgue
'';
meta = {
description = "Virtual Pipe Organ Software";
homepage = "https://github.com/GrandOrgue/grandorgue";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.puzzlewolf ];
mainProgram = "GrandOrgue";
};
}

View File

@@ -0,0 +1,71 @@
{
stdenv,
lib,
fetchurl,
undmg,
makeWrapper,
writeShellApplication,
curl,
cacert,
gnugrep,
common-updater-scripts,
}:
stdenv.mkDerivation (finalAttrs: {
version = "3.5.1";
pname = "grandperspective";
src = fetchurl {
inherit (finalAttrs) version;
url = "mirror://sourceforge/grandperspectiv/GrandPerspective-${
lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version
}.dmg";
hash = "sha256-ZD6XUtsbwxHe3MYdCH9I/pYBCGgilPhhbYQChr0wCj4=";
};
sourceRoot = "GrandPerspective.app";
buildInputs = [ undmg ];
nativeBuildInputs = [ makeWrapper ];
# Create a trampoline script in $out/bin/ because a symlink doesnt work for
# this app.
installPhase = ''
mkdir -p "$out/Applications/GrandPerspective.app" "$out/bin"
cp -R . "$out/Applications/GrandPerspective.app"
makeWrapper "$out/Applications/GrandPerspective.app/Contents/MacOS/GrandPerspective" "$out/bin/grandperspective"
'';
passthru.updateScript = lib.getExe (writeShellApplication {
name = "grandperspective-update-script";
runtimeInputs = [
curl
cacert
gnugrep
common-updater-scripts
];
text = ''
url="https://sourceforge.net/p/grandperspectiv/documentation/ci/master/tree/CHANGES.txt?format=raw"
version=$(curl -s "$url" | grep -oP 'Version \K[0-9.]+(?=,)' | head -n 1)
update-source-version grandperspective "$version"
'';
});
meta = {
description = "Open-source macOS application to analyze disk usage";
longDescription = ''
GrandPerspective is a small utility application for macOS that graphically shows the disk usage within a file
system. It can help you to manage your disk, as you can easily spot which files and folders take up the most
space. It uses a so called tree map for visualisation. Each file is shown as a rectangle with an area proportional to
the file's size. Files in the same folder appear together, but their placement is otherwise arbitrary.
'';
mainProgram = "grandperspective";
homepage = "https://grandperspectiv.sourceforge.net";
license = lib.licenses.gpl2Only;
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [
eliandoran
DimitarNestorov
];
platforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,4 @@
{
python3Packages,
}:
python3Packages.toPythonApplication python3Packages.granian

View File

@@ -0,0 +1,97 @@
{
buildGoModule,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
lib,
makeWrapper,
xdg-utils,
}:
buildGoModule rec {
pname = "granted";
version = "0.38.0";
src = fetchFromGitHub {
owner = "common-fate";
repo = "granted";
rev = "v${version}";
sha256 = "sha256-xHpYtHG0fJ/VvJ/4lJ90ept3yGzJRnmtFQFbYxJtxwY=";
};
vendorHash = "sha256-Y8g5495IYgQ2lvq5qbnQmoxwEYfzzx12KfMS6wF2QXE=";
nativeBuildInputs = [ makeWrapper ];
ldflags = [
"-s"
"-w"
"-X github.com/common-fate/granted/internal/build.Version=v${version}"
"-X github.com/common-fate/granted/internal/build.Commit=${src.rev}"
"-X github.com/common-fate/granted/internal/build.Date=1970-01-01-00:00:01"
"-X github.com/common-fate/granted/internal/build.BuiltBy=Nix"
"-X github.com/common-fate/granted/internal/build.ConfigFolderName=.granted"
];
subPackages = [
"cmd/granted"
];
postInstall =
let
# assume depends on assumego, so we add (placeholder "out") to its path
addToAssumePath = lib.makeBinPath [
xdg-utils
(placeholder "out")
];
in
''
ln -s $out/bin/granted $out/bin/assumego
# Create script with correct permissions
install -Dm755 /dev/null $out/bin/assume
# assume is a script that must be sourced
# We can't wrap it because it inspects $0 and calls return, which can only
# be done in sourced scripts.
# So instead we insert the following snippet into the beginning of the
# script to add to PATH.
# This is borrowed from wrapProgram --suffix PATH :
addToPath="$(cat << 'EOF'
PATH=''${PATH:+':'$PATH':'}
if [[ $PATH != *':'''${addToAssumePath}''':'* ]]; then
PATH=$PATH'${addToAssumePath}'
fi
PATH=''${PATH#':'}
PATH=''${PATH%':'}
export PATH
EOF
)"
# Insert below the #!/bin/sh shebang
echo "$addToPath" | sed "/#!\/bin\/sh/r /dev/stdin" $src/scripts/assume >> $out/bin/assume
# Install fish script
install -Dm755 $src/scripts/assume.fish $out/share/assume.fish
substituteInPlace $out/share/assume.fish \
--replace-fail "#!/bin/fish" "#!/usr/bin/env fish"
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Easiest way to access your cloud";
homepage = "https://github.com/common-fate/granted";
changelog = "https://github.com/common-fate/granted/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
jlbribeiro
];
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchFromGitHub,
boost183,
libseccomp,
flex,
swig,
bison,
cmake,
python3Packages,
makeShellWrapper,
}:
python3Packages.buildPythonApplication rec {
pname = "grap";
version = "1.3.1";
pyproject = false;
src = fetchFromGitHub {
owner = "QuoSecGmbH";
repo = "grap";
tag = "v${version}";
hash = "sha256-zLIKoNOdrmTyZkQGRogeKfIRk4kpG0hmeN0519SJbbo=";
};
dependencies = with python3Packages; [
setuptools
capstone
];
nativeBuildInputs = [
bison
cmake
flex
swig
makeShellWrapper
];
buildInputs = [
boost183.all
libseccomp
];
strictDeps = true;
cmakeFlags = [
"-DPYTHON_SITE_DIR=${placeholder "out"}/${python3Packages.python.sitePackages}"
"../src"
];
postPatch = ''
substituteInPlace src/tools/grap-match/CMakeLists.txt --replace-fail "/usr/local/bin" "$out/bin"
substituteInPlace src/tools/grap/CMakeLists.txt --replace-fail "/usr/local/bin" "$out/bin"
substituteInPlace src/bindings/python/CMakeLists.txt --replace-fail "distutils" "setuptools._distutils"
substituteInPlace src/tools/setup.py --replace-fail "distutils.core" "setuptools"
'';
postInstall = ''
cd $out/${python3Packages.python.sitePackages}
mv pygrap.so _pygrap.so
substituteInPlace pygrap.py \
--replace-fail "import imp" "import importlib" \
--replace-fail "imp." "importlib."
'';
meta = {
description = "Define and match graph patterns within binaries";
longDescription = ''
grap takes patterns and binary files, uses a Casptone-based disassembler to obtain the control flow graphs from the binaries, then matches the patterns against them.
Patterns are user-defined graphs with instruction conditions ("opcode is xor and arg1 is eax") and repetition conditions (3 identical instructions, basic blocks...).
'';
homepage = "https://github.com/QuoSecGmbH/grap/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ s1341 ];
platforms = lib.platforms.linux;
mainProgram = "grap";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
python3Packages,
fetchPypi,
qt5,
}:
python3Packages.buildPythonApplication rec {
pname = "graph-cli";
version = "0.1.19";
format = "pyproject";
src = fetchPypi {
inherit version;
pname = "graph_cli";
hash = "sha256-AOfUgeVgcTtuf5IuLYy1zFTBCjWZxu0OiZzUVXDIaSc=";
};
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
numpy
pandas
(matplotlib.override { enableQt = true; })
];
# does not contain tests despite reference in Makefile
doCheck = false;
pythonImportsCheck = [ "graph_cli" ];
meta = with lib; {
description = "CLI to create graphs from CSV files";
homepage = "https://github.com/mcastorina/graph-cli/";
license = with licenses; [ gpl3Only ];
maintainers = with maintainers; [ leungbk ];
mainProgram = "graph";
};
}

View File

@@ -0,0 +1,22 @@
{
lib,
perlPackages,
fetchurl,
}:
perlPackages.buildPerlPackage {
pname = "graph-easy";
version = "0.76";
src = fetchurl {
url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Graph-Easy-0.76.tar.gz";
sha256 = "d4a2c10aebef663b598ea37f3aa3e3b752acf1fbbb961232c3dbe1155008d1fa";
};
meta = with lib; {
description = "Render/convert graphs in/from various formats";
license = licenses.gpl1Only;
platforms = platforms.unix;
maintainers = [ maintainers.jensbin ];
mainProgram = "graph-easy";
};
}

View File

@@ -0,0 +1,113 @@
{
fetchFromGitHub,
lib,
makeWrapper,
python3,
runCommand,
stdenv,
stress-ng,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "graphene-hardened-malloc";
version = "2025092700";
src = fetchFromGitHub {
owner = "GrapheneOS";
repo = "hardened_malloc";
rev = finalAttrs.version;
hash = "sha256-t7PnBwpGh53+ZqTbnm8lYaNBtUgLev9kbvFlbfSCBrU=";
};
nativeCheckInputs = [ python3 ];
# these tests cover use as a build-time-linked library
checkTarget = "test";
doCheck = true;
buildPhase = ''
runHook preBuild
for VARIANT in default light; do make $makeFlags ''${enableParallelBuilding:+-j$NIX_BUILD_CORES} VARIANT=$VARIANT; done
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm444 -t $out/include include/*
install -Dm444 -t $out/lib out/libhardened_malloc.so out-light/libhardened_malloc-light.so
mkdir -p $out/bin
substitute preload.sh $out/bin/preload-hardened-malloc --replace "\$dir" $out/lib
chmod 0555 $out/bin/preload-hardened-malloc
runHook postInstall
'';
separateDebugInfo = true;
passthru = {
updateScript = ./update.sh;
ld-preload-tests = stdenv.mkDerivation {
name = "${finalAttrs.pname}-ld-preload-tests";
inherit (finalAttrs) src;
nativeBuildInputs = [ makeWrapper ];
# reuse the projects tests to cover use with LD_PRELOAD. we have
# to convince the test programs to build as though they're naive
# standalone executables. this includes disabling tests for
# malloc_object_size, which doesn't make sense to use via LD_PRELOAD.
buildPhase = ''
pushd test
make LDLIBS= LDFLAGS=-Wl,--unresolved-symbols=ignore-all CXXFLAGS=-lstdc++
substituteInPlace test_smc.py \
--replace 'test_malloc_object_size' 'dont_test_malloc_object_size' \
--replace 'test_invalid_malloc_object_size' 'dont_test_invalid_malloc_object_size'
popd # test
'';
installPhase = ''
mkdir -p $out/test
cp -r test $out/test
mkdir -p $out/bin
makeWrapper ${python3.interpreter} $out/bin/run-tests \
--add-flags "-I -m unittest discover --start-directory $out/test"
'';
};
tests = {
ld-preload = runCommand "ld-preload-test-run" { } ''
${finalAttrs.finalPackage}/bin/preload-hardened-malloc ${finalAttrs.passthru.ld-preload-tests}/bin/run-tests
touch $out
'';
# to compensate for the lack of tests of correct normal malloc operation
stress = runCommand "stress-test-run" { } ''
${finalAttrs.finalPackage}/bin/preload-hardened-malloc ${stress-ng}/bin/stress-ng \
--no-rand-seed \
--malloc 8 \
--malloc-ops 1000000 \
--verify
touch $out
'';
};
};
meta = with lib; {
homepage = "https://github.com/GrapheneOS/hardened_malloc";
description = "Hardened allocator designed for modern systems";
mainProgram = "preload-hardened-malloc";
longDescription = ''
This is a security-focused general purpose memory allocator providing the malloc API
along with various extensions. It provides substantial hardening against heap
corruption vulnerabilities yet aims to provide decent overall performance.
'';
license = licenses.mit;
maintainers = with maintainers; [ ris ];
platforms = [
"x86_64-linux"
"aarch64-linux"
];
};
})

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env nix-shell
#!nix-shell --pure -i bash -p bash cacert curl common-updater-scripts
# shellcheck shell=bash
set -eu -o pipefail
host="https://releases.grapheneos.org"
read -ra metadata <<< "$(curl -s "$host/caiman-stable")"
version=${metadata[0]}
update-source-version graphene-hardened-malloc "$version"

View File

@@ -0,0 +1,51 @@
From d68fcb793d70032e978ecf8e0577eea955a741cf Mon Sep 17 00:00:00 2001
From: worldofpeace <worldofpeace@protonmail.ch>
Date: Sun, 10 Apr 2022 12:02:10 +0800
Subject: [PATCH] meson: add options for tests installation dirs
---
meson_options.txt | 6 ++++++
tests/meson.build | 13 +++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/meson_options.txt b/meson_options.txt
index b9a2fb5..4b8629f 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -23,3 +23,9 @@ option('tests', type: 'boolean',
option('installed_tests', type: 'boolean',
value: true,
description: 'Install tests')
+option('installed_test_datadir', type: 'string',
+ value: '',
+ description: 'Installation directory for data files in tests')
+option('installed_test_bindir', type: 'string',
+ value: '',
+ description: 'Installation directory for binary files in tests')
diff --git a/tests/meson.build b/tests/meson.build
index 2b925e7..3276849 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -21,8 +21,17 @@ unit_tests = [
gen_installed_test = find_program('gen-installed-test.py')
-installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'installed-tests', graphene_api_path)
-installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), 'installed-tests', graphene_api_path)
+installed_test_suffix = join_paths('installed-tests', graphene_api_path)
+
+installed_test_datadir = join_paths(get_option('installed_test_datadir'), installed_test_suffix)
+if installed_test_datadir == ''
+ installed_test_datadir = join_paths(get_option('prefix'), get_option('datadir'), installed_test_suffix)
+endif
+
+installed_test_bindir = join_paths(get_option('installed_test_bindir'), installed_test_suffix)
+if installed_test_bindir == ''
+ installed_test_bindir = join_paths(get_option('prefix'), get_option('libexecdir'), installed_test_suffix)
+endif
# Make tests conditional on having mutest-1 installed system-wide, or
# available as a subproject
--
2.35.1

View File

@@ -0,0 +1,160 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
nix-update-script,
pkg-config,
meson,
mesonEmulatorHook,
ninja,
python3,
mutest,
nixosTests,
glib,
withDocumentation ?
(
stdenv.buildPlatform.canExecute stdenv.hostPlatform
|| stdenv.hostPlatform.emulatorAvailable buildPackages
)
&& !stdenv.hostPlatform.isStatic,
gtk-doc,
docbook_xsl,
docbook_xml_dtd_43,
buildPackages,
gobject-introspection,
withIntrospection ?
lib.meta.availableOn stdenv.hostPlatform gobject-introspection
&& stdenv.hostPlatform.emulatorAvailable buildPackages,
makeWrapper,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "graphene";
version = "1.10.8";
outputs = [
"out"
"dev"
]
++ lib.optionals withDocumentation [ "devdoc" ]
++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ "installedTests" ];
src = fetchFromGitHub {
owner = "ebassi";
repo = "graphene";
rev = finalAttrs.version;
sha256 = "P6JQhSktzvyMHatP/iojNGXPmcsxsFxdYerXzS23ojI=";
};
patches = [
# Add option for changing installation path of installed tests.
./0001-meson-add-options-for-tests-installation-dirs.patch
# Disable flaky simd_operators_reciprocal test
# https://github.com/ebassi/graphene/issues/246
(fetchpatch {
url = "https://github.com/ebassi/graphene/commit/4fbdd07ea3bcd0964cca3966010bf71cb6fa8209.patch";
sha256 = "uFkkH0u4HuQ/ua1mfO7sJZ7MPrQdV/JON7mTYB4DW80=";
includes = [ "tests/simd.c" ];
revert = true;
})
];
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
python3
makeWrapper
]
++ lib.optionals withDocumentation [
docbook_xml_dtd_43
docbook_xsl
gtk-doc
]
++ lib.optionals (withDocumentation && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
]
++ lib.optionals withIntrospection [
gobject-introspection
];
buildInputs = [
glib
];
nativeCheckInputs = [
mutest
];
mesonFlags = [
(lib.mesonBool "gtk_doc" withDocumentation)
(lib.mesonEnable "introspection" withIntrospection)
"-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
"-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
]
++ lib.optionals stdenv.hostPlatform.isAarch32 [
# the box test is failing with SIGBUS on armv7l-linux
# https://github.com/ebassi/graphene/issues/215
"-Darm_neon=false"
];
doCheck = true;
postPatch = ''
patchShebangs tests/gen-installed-test.py
''
+ lib.optionalString withIntrospection ''
PATH=${
python3.withPackages (pp: [
pp.pygobject3
pp.tappy
])
}/bin:$PATH patchShebangs tests/introspection.py
'';
postFixup =
let
introspectionPy = "${placeholder "installedTests"}/libexec/installed-tests/graphene-1.0/introspection.py";
in
lib.optionalString withIntrospection ''
if [ -x '${introspectionPy}' ] ; then
wrapProgram '${introspectionPy}' \
--prefix GI_TYPELIB_PATH : "${
lib.makeSearchPath "lib/girepository-1.0" [
glib.out
(placeholder "out")
]
}"
fi
'';
passthru = {
tests = {
installedTests = nixosTests.installed-tests.graphene;
pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Thin layer of graphic data types";
homepage = "https://github.com/ebassi/graphene";
license = licenses.mit;
teams = [ teams.gnome ];
platforms = platforms.unix;
pkgConfigModules = [
"graphene-1.0"
"graphene-gobject-1.0"
];
};
})

View File

@@ -0,0 +1,154 @@
{
fetchFromGitHub,
fetchurl,
lib,
stdenv,
testers,
jre,
makeWrapper,
maven,
...
}:
let
version = fromTOML (builtins.readFile ./version.toml);
src = fetchFromGitHub {
owner = "graphhopper";
repo = "graphhopper";
tag = version.patch;
hash = version.hash.src;
};
# Patch graphhopper to remove the npm download
patches = [ ./remove-npm-dependency.patch ];
# Graphhopper also relies on a maps bundle downloaded from npm
# By default it installs nodejs and npm during the build,
# But we patch that out so we much fetch it ourselves
mapsBundle = fetchurl {
name = "@graphhopper/graphhopper-maps-bundle-${version.mapsBundle}";
url = "https://registry.npmjs.org/@graphhopper/graphhopper-maps-bundle/-/graphhopper-maps-bundle-${version.mapsBundle}.tgz";
hash = version.hash.mapsBundle;
};
# We cannot use `buildMavenPackage` as we need to load in the
# mapsBundle before doing anything
mvnDeps = stdenv.mkDerivation {
name = "graphhopper-dependencies";
inherit src patches;
buildInputs = [ maven ];
buildPhase = ''
# Fetching deps with mvn dependency:go-offline does not quite catch everything, so we use this plugin instead
mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies \
-Dmaven.repo.local=$out/.m2 \
-Dmaven.wagon.rto=5000
'';
installPhase = ''
# keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
find $out -type f \( \
-name \*.lastUpdated \
-o -name resolver-status.properties \
-o -name _remote.repositories \) \
-delete
'';
outputHashMode = "recursive";
outputHash = version.hash.mvnDeps;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "graphhopper";
inherit src patches;
version = version.patch;
nativeBuildInputs = [
makeWrapper
maven
];
strictDeps = true;
configurePhase = ''
runHook preConfigure
mkdir -p ./web-bundle/target/
ln -s ${mapsBundle} ./web-bundle/target/graphhopper-graphhopper-maps-bundle-${version.mapsBundle}.tgz
runHook postConfigure
'';
# Build and skip tests because downloading of
# test deps seems to not work with the go-offline plugin
buildPhase = ''
runHook preBuild
mvn package --offline \
-Dmaven.repo.local=${mvnDeps}/.m2 \
-DskipTests
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
ln -s ${mvnDeps}/.m2 $out/lib
# Grapphopper versions are seemingly compiled under the major release name,
# not the patch name, which is the version we want for our package
cp ./web/target/graphhopper-web-${version.major}-SNAPSHOT.jar $out/bin/graphhopper-web-${version.major}-SNAPSHOT.jar
makeWrapper ${jre}/bin/java $out/bin/graphhopper \
--add-flags "-jar $out/bin/graphhopper-web-${version.major}-SNAPSHOT.jar" \
--chdir $out
runHook postInstall
'';
fixupPhase = ''
runHook preFixup
# keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
find $out -type f \( \
-name \*.lastUpdated \
-o -name resolver-status.properties \
-o -name _remote.repositories \) \
-delete
runHook postFixup
'';
meta = {
description = "Fast and memory-efficient routing engine for OpenStreetMap";
homepage = "https://www.graphhopper.com/";
changelog = "https://github.com/graphhopper/graphhopper/releases/tag/${version.patch}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ baileylu ];
teams = [ lib.teams.geospatial ];
platforms = lib.platforms.all;
mainProgram = "graphhopper";
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryBytecode
];
};
passthru = {
updateScript = ./update.nu;
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
# `graphhopper --version` does not work as the source does not specify `Implementation-Version`
command = "graphhopper --help";
version = "graphhopper-web-${version.major}-SNAPSHOT.jar";
};
};
})

View File

@@ -0,0 +1,55 @@
From ad687709cfca51603264ff565f296cfb5dceb15a Mon Sep 17 00:00:00 2001
From: Luke Bailey <baileylu@tcd.ie>
Date: Wed, 19 Mar 2025 22:25:44 +0000
Subject: [PATCH] Swap out frontend maven plugin which downloads npm
for fetching it through nix instead
---
web-bundle/pom.xml | 31 -------------------------------
1 file changed, 31 deletions(-)
diff --git a/web-bundle/pom.xml b/web-bundle/pom.xml
index 9a4d83b62..1d995cbaf 100644
--- a/web-bundle/pom.xml
+++ b/web-bundle/pom.xml
@@ -129,37 +129,6 @@
<build>
<plugins>
- <plugin>
- <groupId>com.github.eirslett</groupId>
- <artifactId>frontend-maven-plugin</artifactId>
- <version>1.12.1</version>
- <executions>
- <execution>
- <id>install node and npm</id>
- <goals>
- <goal>install-node-and-npm</goal>
- </goals>
- <configuration>
- <nodeVersion>v20.14.0</nodeVersion>
- <npmVersion>10.7.0</npmVersion>
- </configuration>
- </execution>
- <execution>
- <id>download graphhopper maps</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>npm</goal>
- </goals>
- <configuration>
- <!--suppress UnresolvedMavenProperty (IntelliJ shows an error otherwise...)-->
- <arguments>
- pack --pack-destination=${basedir}/target
- @graphhopper/graphhopper-maps-bundle@${graphhopper-maps.version}
- </arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
--
2.48.1

View File

@@ -0,0 +1,102 @@
#!/usr/bin/env nix-shell
#! nix-shell -i nu -p nushell nix-prefetch-github common-updater-scripts
use std/log
let version_info = "./pkgs/by-name/gr/graphhopper/version.toml"
let current_version = open $version_info
let latest_tag = list-git-tags --url=https://github.com/graphhopper/graphhopper
| lines
| sort --natural
| where ($it =~ '^[\d.]+$')
| last
if $current_version.patch == $latest_tag {
log debug "Current graphhopper version matched latest version of graphhopper, no update is needed, exiting..."
exit 0
}
let major = $latest_tag
| str replace -ar '(\d+)\.\d+' '$1.0'
log debug $"Fetching source for graphhopper patch ($latest_tag) on version ($major)"
let source = nix-prefetch-github graphhopper graphhopper --rev $latest_tag
| from json
log debug $"Reading maps bundle version for ($latest_tag)"
let web_bundle_pom = http get $"https://api.github.com/repos/graphhopper/graphhopper/contents/web-bundle/pom.xml?ref=($latest_tag)"
| $in.content
| base64 --decode
| into string
| from xml
let maps_bundle_properties = $web_bundle_pom.content
| where ($it.tag =~ "properties")
| first
let maps_bundle_version = $maps_bundle_properties.content
| where ($it.tag =~ "graphhopper-maps.version")
| first
| $in.content
| first
| $in.content
log debug $"Fetching maps bundle ($maps_bundle_version)"
let maps_bundle_hash = nix-prefetch-url $"https://registry.npmjs.org/@graphhopper/graphhopper-maps-bundle/-/graphhopper-maps-bundle-($maps_bundle_version).tgz"
| nix-hash --type sha256 --to-base64 $in
| ["sha256-", $in]
| str join
log debug $"Writing to ($version_info) without mvnDeps hash..."
{
major: $major,
patch: $latest_tag,
mapsBundle: $maps_bundle_version,
hash: {
src: $source.hash
mapsBundle: $maps_bundle_hash
mvnDeps: "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
}
}
| to toml
| save $version_info -f
log debug "Calculating mvnDeps hash..."
let graphhopper_build_logs = nix-build -A graphhopper o+e>| cat
let mvn_hash_lines = $graphhopper_build_logs
| lines
| find "got:"
if ($mvn_hash_lines | length) == 0 {
log error $"Could not find any maven hash in the graphhopper build logs - maybe a different error occurred: \n$($graphhopper_build_logs)"
exit 1
}
log debug $"Found relevant hash lines: ($mvn_hash_lines)"
let mvn_hash = $mvn_hash_lines
| first
| ansi strip
| str replace 'got:' ''
| str trim
log debug $"Writing to ($version_info) with mvnDeps hash ($mvn_hash).."
{
major: $major,
patch: $latest_tag,
mapsBundle: $maps_bundle_version,
hash: {
src: $source.hash
mapsBundle: $maps_bundle_hash
mvnDeps: $mvn_hash
}
}
| to toml
| save $version_info -f
log debug $"Successfully updated graphhopper package!"

View File

@@ -0,0 +1,8 @@
major = "10.0"
patch = "10.2"
mapsBundle = "0.0.0-4718098d1db1798841a4d12f1727e8e8f7eab202"
[hash]
src = "sha256-E6G9JR1lrXhNJ4YgMM0n0RsQcMZQM2QldGc74f5FALo="
mapsBundle = "sha256-jZTNJfmMWJQHpJ8um3yTBx/KtIfdr0EwKJ9kSFalWJQ="
mvnDeps = "sha256-KidbIBnW//IiKPFy3plFWOED8gP/ZCg4buwMgzttaY8="

View File

@@ -0,0 +1,54 @@
{
lib,
graphicsmagick,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
pname = "graphicsmagick-imagemagick-compat";
inherit (graphicsmagick) version;
outputs = [
"out"
"man"
];
dontUnpack = true;
dontBuild = true;
# TODO: symlink libraries?
installPhase =
let
utilities = [
"animate"
"composite"
"conjure"
"convert"
"display"
"identify"
"import"
"mogrify"
"montage"
];
linkUtilityBin = utility: ''
ln -s ${lib.getExe graphicsmagick} "$out/bin/${utility}"
'';
linkUtilityMan = utility: ''
ln -s ${lib.getMan graphicsmagick}/share/man/man1/gm.1.gz "$man/share/man/man1/${utility}.1.gz"
'';
in
''
runHook preInstall
mkdir -p "$out"/bin
${lib.concatStringsSep "\n" (map linkUtilityBin utilities)}
mkdir -p "$man"/share/man/man1
${lib.concatStringsSep "\n" (map linkUtilityMan utilities)}
runHook postInstall
'';
meta = graphicsmagick.meta // {
description = "Repack of GraphicsMagick that provides compatibility with ImageMagick interfaces";
};
}

View File

@@ -0,0 +1,118 @@
{
lib,
bzip2,
callPackage,
coreutils,
fetchurl,
fixDarwinDylibNames,
freetype,
ghostscript,
graphviz,
libX11,
libjpeg,
libpng,
libtiff,
libtool,
libwebp,
libxml2,
libheifSupport ? true,
libheif,
nukeReferences,
pkg-config,
quantumdepth ? 8,
runCommand,
stdenv,
xz,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "graphicsmagick";
version = "1.3.45";
src = fetchurl {
url = "mirror://sourceforge/graphicsmagick/GraphicsMagick-${finalAttrs.version}.tar.xz";
hash = "sha256-3OpRZ0FPfIBVV94tekepsxR7y/YXuR9fD0r+XmVDAms=";
};
outputs = [
"out"
"man"
];
buildInputs = [
bzip2
freetype
ghostscript
graphviz
libX11
libjpeg
libpng
libtiff
libtool
libwebp
libxml2
zlib
]
++ lib.optionals libheifSupport [ libheif ];
nativeBuildInputs = [
nukeReferences
pkg-config
xz
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ];
configureFlags = [
# specify delegates explicitly otherwise `gm` will invoke the build
# coreutils for filetypes it doesn't natively support.
"MVDelegate=${lib.getExe' coreutils "mv"}"
(lib.enableFeature true "shared")
(lib.withFeature true "frozenpaths")
(lib.withFeatureAs true "quantum-depth" (toString quantumdepth))
(lib.withFeatureAs true "gslib" "yes")
];
# Remove CFLAGS from the binaries to avoid closure bloat.
# In the past we have had -dev packages in the closure of the binaries solely
# due to the string references.
postConfigure = ''
nuke-refs -e $out ./magick/magick_config.h
'';
postInstall = ''
sed -i 's/-ltiff.*'\'/\'/ $out/bin/*
'';
passthru = {
imagemagick-compat = callPackage ./imagemagick-compat.nix {
graphicsmagick = finalAttrs.finalPackage;
};
tests = {
issue-157920 =
runCommand "issue-157920-regression-test"
{
buildInputs = [ finalAttrs.finalPackage ];
}
''
gm convert ${graphviz}/share/doc/graphviz/neatoguide.pdf jpg:$out
'';
};
};
meta = {
homepage = "http://www.graphicsmagick.org";
description = "Swiss army knife of image processing";
longDescription = ''
GraphicsMagick is the swiss army knife of image processing, providing a
robust and efficient collection of tools and libraries which support
reading, writing, and manipulating an image in over 92 major formats
including important formats like DPX, GIF, JPEG, JPEG-2000, JXL, PNG, PDF,
PNM, TIFF, and WebP.
'';
license = with lib.licenses; [ mit ];
maintainers = [ ];
mainProgram = "gm";
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,56 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "graphinder";
version = "2.0.0b4";
pyproject = true;
src = fetchFromGitHub {
owner = "Escape-Technologies";
repo = "graphinder";
tag = "v${version}";
hash = "sha256-emBWhEJxYRAw3WTd8t+lurnHX8SeCcLBHGH9B+Owuag=";
};
build-system = with python3.pkgs; [ poetry-core ];
dependencies = with python3.pkgs; [
aiohttp
beautifulsoup4
requests
setuptools
];
nativeCheckInputs = with python3.pkgs; [
pytest-asyncio
pytest-mock
pytestCheckHook
];
pythonImportsCheck = [
"graphinder"
];
disabledTests = [
# Tests require network access
"test_domain_class"
"test_extract_file_zip"
"test_fetch_assets"
"test_full_run"
"test_init_domain_tasks"
"test_is_gql_endpoint"
];
meta = {
description = "Tool to find GraphQL endpoints using subdomain enumeration";
homepage = "https://github.com/Escape-Technologies/graphinder";
changelog = "https://github.com/Escape-Technologies/graphinder/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "graphinder";
};
}

View File

@@ -0,0 +1,36 @@
{
"name": "@withgraphite/graphite-cli",
"version": "1.7.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@withgraphite/graphite-cli",
"version": "1.7.0",
"hasInstallScript": true,
"license": "None",
"dependencies": {
"semver": "^7.5.4"
},
"bin": {
"graphite": "graphite.js",
"gt": "graphite.js"
},
"engines": {
"node": ">=16"
}
},
"node_modules/semver": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
}
}
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
buildNpmPackage,
fetchurl,
git,
installShellFiles,
}:
buildNpmPackage rec {
pname = "graphite-cli";
version = "1.7.0";
src = fetchurl {
url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
hash = "sha256-RoFzv4edmX4j6vl5K70fK38uZiXwqcbIvCdNcvumnRE=";
};
npmDepsHash = "sha256-OpX0FpOGtsVgIsIsEPSTkNQ6z2basOf0OTboSBcrdOI=";
postPatch = ''
ln -s ${./package-lock.json} package-lock.json
'';
nativeBuildInputs = [
git
installShellFiles
];
dontNpmBuild = true;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd gt \
--bash <($out/bin/gt completion) \
--fish <(GT_PAGER= $out/bin/gt fish) \
--zsh <(ZSH_NAME=zsh $out/bin/gt completion)
'';
passthru.updateScript = ./update.sh;
meta = {
changelog = "https://graphite.dev/docs/cli-changelog";
description = "CLI that makes creating stacked git changes fast & intuitive";
downloadPage = "https://www.npmjs.com/package/@withgraphite/graphite-cli";
homepage = "https://graphite.dev/docs/graphite-cli";
license = lib.licenses.unfree; # no license specified
mainProgram = "gt";
maintainers = with lib.maintainers; [ joshheinrichs-shopify ];
};
}

View File

@@ -0,0 +1,30 @@
#! /usr/bin/env nix-shell
#! nix-shell -i bash -p gnused nix nodejs prefetch-npm-deps wget
set -euo pipefail
pushd "$(dirname "${BASH_SOURCE[0]}")"
version=$(npm view @withgraphite/graphite-cli version)
tarball="graphite-cli-$version.tgz"
url="https://registry.npmjs.org/@withgraphite/graphite-cli/-/$tarball"
if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then
echo "Already up to date!"
exit 0
fi
sed -i 's#version = "[^"]*"#version = "'"$version"'"#' package.nix
sha256=$(nix-prefetch-url "$url")
src_hash=$(nix-hash --to-sri --type sha256 "$sha256")
sed -i 's#hash = "[^"]*"#hash = "'"$src_hash"'"#' package.nix
rm -f package-lock.json package.json *.tgz
wget "$url"
tar xf "$tarball" --strip-components=1 package/package.json
npm i --package-lock-only --ignore-scripts
npm_hash=$(prefetch-npm-deps package-lock.json)
sed -i 's#npmDepsHash = "[^"]*"#npmDepsHash = "'"$npm_hash"'"#' package.nix
rm -f package.json *.tgz
popd

View File

@@ -0,0 +1,33 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "graphite-cursors";
version = "2021-11-26";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = "graphite-cursors";
rev = version;
sha256 = "sha256-Kopl2NweYrq9rhw+0EUMhY/pfGo4g387927TZAhI5/A=";
};
installPhase = ''
install -dm 755 $out/share/icons
mv dist-dark $out/share/icons/graphite-dark
mv dist-light $out/share/icons/graphite-light
mv dist-dark-nord $out/share/icons/graphite-dark-nord
mv dist-light-nord $out/share/icons/graphite-light-nord
'';
meta = with lib; {
description = "Graphite cursor theme";
homepage = "https://github.com/vinceliuice/Graphite-cursors";
license = licenses.gpl3Only;
platforms = platforms.all;
maintainers = with maintainers; [ oluceps ];
};
}

View File

@@ -0,0 +1,133 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gitUpdater,
gnome-themes-extra,
gtk-engine-murrine,
jdupes,
sassc,
themeVariants ? [ ], # default: blue
colorVariants ? [ ], # default: all
sizeVariants ? [ ], # default: standard
tweaks ? [ ],
wallpapers ? false,
withGrub ? false,
grubScreens ? [ ], # default: 1080p
}:
let
pname = "graphite-gtk-theme";
in
lib.checkListOfEnum "${pname}: theme variants"
[
"default"
"purple"
"pink"
"red"
"orange"
"yellow"
"green"
"teal"
"blue"
"all"
]
themeVariants
lib.checkListOfEnum
"${pname}: color variants"
[ "standard" "light" "dark" ]
colorVariants
lib.checkListOfEnum
"${pname}: size variants"
[ "standard" "compact" ]
sizeVariants
lib.checkListOfEnum
"${pname}: tweaks"
[
"nord"
"black"
"darker"
"rimless"
"normal"
"float"
"colorful"
]
tweaks
lib.checkListOfEnum
"${pname}: grub screens"
[ "1080p" "2k" "4k" ]
grubScreens
stdenvNoCC.mkDerivation
rec {
inherit pname;
version = "2025-07-06";
src = fetchFromGitHub {
owner = "vinceliuice";
repo = "graphite-gtk-theme";
rev = version;
hash = "sha256-TOIpQTYg+1DX/Tq5BMygxbUC0NpzPWBGDtOnnT55c1w=";
};
nativeBuildInputs = [
jdupes
sassc
];
buildInputs = [
gnome-themes-extra
];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
postPatch = ''
patchShebangs install.sh wallpaper/install-wallpapers.sh
substituteInPlace wallpaper/install-wallpapers.sh \
--replace-fail /usr/share $out/share \
--replace-fail '[[ "$UID" -eq "$ROOT_UID" ]]' true
'';
installPhase = ''
runHook preInstall
name= ./install.sh \
${lib.optionalString (themeVariants != [ ]) "--theme " + toString themeVariants} \
${lib.optionalString (colorVariants != [ ]) "--color " + toString colorVariants} \
${lib.optionalString (sizeVariants != [ ]) "--size " + toString sizeVariants} \
${lib.optionalString (tweaks != [ ]) "--tweaks " + toString tweaks} \
--dest $out/share/themes
${lib.optionalString wallpapers "sh -x wallpaper/install-wallpapers.sh"}
${lib.optionalString withGrub ''
(
cd other/grub2
patchShebangs install.sh
./install.sh --justcopy --dest $out/share/grub/themes \
${lib.optionalString (builtins.elem "nord" tweaks) "--theme nord"} \
${lib.optionalString (grubScreens != [ ]) "--screen " + toString grubScreens}
)
''}
jdupes --quiet --link-soft --recurse $out/share
runHook postInstall
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Flat Gtk+ theme based on Elegant Design";
homepage = "https://github.com/vinceliuice/Graphite-gtk-theme";
license = licenses.gpl3Only;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication {
pname = "graphpython";
version = "1.0-unstable-2024-07-28";
pyproject = true;
src = fetchFromGitHub {
owner = "mlcsec";
repo = "Graphpython";
# https://github.com/mlcsec/Graphpython/issues/1
rev = "ee7dbda7fe881a9a207ca8661d42c505b8491ea3";
hash = "sha256-64M/Cc49mlceY5roBVuSsDIcbDx+lrX6oSjPAu9YDwA=";
};
build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
beautifulsoup4
cryptography
dnspython
pyjwt
requests
tabulate
termcolor
tqdm
];
pythonImportsCheck = [ "Graphpython" ];
# Project has no tests
doCheck = false;
meta = {
description = "Microsoft Graph API (Entra, o365, and Intune) enumeration and exploitation toolkit";
homepage = "https://github.com/mlcsec/Graphpython";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "graphpython";
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
rustPlatform,
fetchCrate,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage rec {
pname = "graphql-client";
version = "0.13.0";
src = fetchCrate {
inherit version;
crateName = "graphql_client_cli";
hash = "sha256-eQ+7Ru3au/rDQZtwFDXYyybqC5uFtNBs6cEzX2QSFI4=";
};
cargoHash = "sha256-GPUOIDKlxk2P+cPmOPlpz/EM9TCXvHo41+1fQ0xAqto=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
meta = with lib; {
description = "GraphQL tool for Rust projects";
mainProgram = "graphql-client";
homepage = "https://github.com/graphql-rust/graphql-client";
license = with licenses; [
asl20 # or
mit
];
maintainers = with maintainers; [ bbigras ];
};
}

View File

@@ -0,0 +1,76 @@
{
lib,
fetchFromGitHub,
fetchYarnDeps,
makeWrapper,
nodejs,
stdenv,
yarnBuildHook,
yarnConfigHook,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "graphql-language-service-cli";
version = "3.5.0";
src = fetchFromGitHub {
owner = "graphql";
repo = "graphiql";
tag = "graphql-language-service-cli@${finalAttrs.version}";
hash = "sha256-NJTggaMNMjOP5oN+gHxFTwEdNipPNzTFfA6f975HDgM=";
};
patches = [
./patches/0001-repurpose-vscode-graphql-build-script.patch
];
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-ae6KP2sFgw8/8YaTJSPscBlVQ5/bzbvHRZygcMgFAlU=";
};
nativeBuildInputs = [
yarnConfigHook
yarnBuildHook
nodejs
makeWrapper
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib}
pushd packages/graphql-language-service-cli
node esbuild.js --minify
# copy package.json for --version command
mv {out/graphql.js,package.json} $out/lib
makeWrapper ${lib.getExe nodejs} $out/bin/graphql-lsp \
--add-flags $out/lib/graphql.js \
popd
runHook postInstall
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/${finalAttrs.meta.mainProgram}";
passthru = {
updateScript = ./updater.sh;
};
meta = {
description = "Official, runtime independent Language Service for GraphQL";
homepage = "https://github.com/graphql/graphiql";
changelog = "https://github.com/graphql/graphiql/blob/${finalAttrs.src.tag}/packages/graphql-language-service-cli/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ nathanregner ];
mainProgram = "graphql-lsp";
};
})

View File

@@ -0,0 +1,63 @@
From ceeca9463380ab11483ec22f9e46fdc3f83162b0 Mon Sep 17 00:00:00 2001
From: Nathan Regner <nathanregner@gmail.com>
Date: Sat, 15 Mar 2025 15:50:13 -0600
Subject: [PATCH] Repurpose vscode-graphql build script
Bundling the output script means we don't have to ship 1GB of
`node_modules` (there are lots of unrelated dependencies used by other
packages in the monorepo).
---
.../esbuild.js | 28 ++-----------------
1 file changed, 2 insertions(+), 26 deletions(-)
rename packages/{vscode-graphql => graphql-language-service-cli}/esbuild.js (59%)
diff --git a/packages/vscode-graphql/esbuild.js b/packages/graphql-language-service-cli/esbuild.js
similarity index 59%
rename from packages/vscode-graphql/esbuild.js
rename to packages/graphql-language-service-cli/esbuild.js
index 744f4e60..4b9147fa 100644
--- a/packages/vscode-graphql/esbuild.js
+++ b/packages/graphql-language-service-cli/esbuild.js
@@ -1,12 +1,8 @@
const { build } = require('esbuild');
const [, , arg] = process.argv;
-const logger = console;
-
-const isWatchMode = arg === '--watch';
-
build({
- entryPoints: ['src/extension.ts', 'src/server/index.ts'],
+ entryPoints: ['bin/graphql.js'],
bundle: true,
minify: arg === '--minify',
platform: 'node',
@@ -50,24 +46,4 @@ build({
'liquor',
'twig',
],
-})
- .then(({ errors, warnings }) => {
- if (warnings.length) {
- logger.warn(...warnings);
- }
- if (errors.length) {
- logger.error(...errors);
- }
-
- logger.log('successfully bundled vscode-graphql 🚀');
-
- if (isWatchMode) {
- logger.log('watching... 🕰');
- } else {
- process.exit();
- }
- })
- .catch(err => {
- logger.error(err);
- process.exit(1);
- });
+});
--
2.48.1

View File

@@ -0,0 +1,22 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils curl jq nix-update
set -euo pipefail
# this package is part of a monorepo with many tags; nix-update only seems to
# fetch the 10 most recent
# https://github.com/Mic92/nix-update/issues/231
owner="graphql"
repo="graphiql"
version=$(
curl -s ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "https://api.github.com/repos/graphql/graphiql/git/refs/tags/graphql-language-service-cli" |
jq 'map(.ref | capture("refs/tags/graphql-language-service-cli@(?<version>[0-9.]+)").version) | .[]' -r |
sort --reverse --version-sort | head -n1
)
if [[ "$UPDATE_NIX_OLD_VERSION" == "$version" ]]; then
echo "Already up to date!"
exit 0
fi
nix-update graphql-language-service-cli --version $version

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "graphqlmaker";
version = "0-unstable-2024-05-18";
src = fetchFromGitHub {
owner = "xssdoctor";
repo = "graphqlMaker";
rev = "ff884ce39156d8458da35c0b0b5d7eb1e1146bb5";
hash = "sha256-H3AFCS1WoeVXUdXBV1JKrGIraJP/ql6XG++PxmWUico=";
};
vendorHash = "sha256-1mDOqTsQ3kHs3MEWlRcdqhjIRul7um2mfBAxObhoSlE=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Tool to find graphql queries in Javascript files";
homepage = "https://github.com/xssdoctor/graphqlMaker";
# https://github.com/xssdoctor/graphqlMaker/issues/1
license = licenses.unfree;
maintainers = with maintainers; [ fab ];
mainProgram = "graphqlMaker";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication {
pname = "graphqlmap";
version = "0-unstable-2022-01-17";
format = "pyproject";
src = fetchFromGitHub {
owner = "swisskyrepo";
repo = "GraphQLmap";
rev = "98997bd7cf647aac7378b72913241060464749b1";
hash = "sha256-lGnhNwtDc8KoPlwJ1p2FYq0NQ8PhSR3HgtluU7uxa/c=";
};
build-system = with python3.pkgs; [
setuptools
];
dependencies = with python3.pkgs; [
requests
];
# Tests are not available
doCheck = false;
pythonImportsCheck = [
"graphqlmap"
];
meta = with lib; {
description = "Tool to interact with a GraphQL endpoint";
mainProgram = "graphqlmap";
homepage = "https://github.com/swisskyrepo/GraphQLmap";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage rec {
pname = "graphqurl";
version = "2.0.0";
src = fetchFromGitHub {
owner = "hasura";
repo = "graphqurl";
rev = "v${version}";
hash = "sha256-q46DX/luUwBoVskKy9+hXOkpGmlh+lNRvwfcTn6DPN8=";
};
npmDepsHash = "sha256-TfKQWghcsVPPfn/a1A84sh0FT57WSnQt9uuiO1ScoAY=";
dontNpmBuild = true;
meta = {
description = "CLI and JS library for making GraphQL queries";
homepage = "https://github.com/hasura/graphqurl";
license = lib.licenses.asl20;
mainProgram = "gq";
maintainers = with lib.maintainers; [ bbigras ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "graphs";
version = "20210214";
src = fetchurl {
url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2";
sha256 = "sha256-ByN8DZhTYRUFw4n9e7klAMh0P1YxurtND0Xf2DMvN0E=";
};
installPhase = ''
mkdir -p "$out/share/graphs"
cp * "$out/share/graphs/"
'';
meta = with lib; {
description = "Database of graphs";
license = licenses.gpl2;
platforms = platforms.all;
teams = [ teams.sage ];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "graphw00f";
version = "1.2.1";
format = "other";
src = fetchFromGitHub {
owner = "dolevf";
repo = "graphw00f";
tag = version;
hash = "sha256-8fOvcc//UdDawgGMAhbYQ/O5kd1l2skWGDlFNYocNY8=";
};
dependencies = with python3.pkgs; [ requests ];
installPhase = ''
runHook preInstall
install -vD main.py $out/bin/graphw00f
install -vD {conf,version}.py -t $out/${python3.sitePackages}/
install -vD graphw00f/* -t $out/${python3.sitePackages}/graphw00f
runHook postInstall
'';
meta = with lib; {
description = "GraphQL Server Engine Fingerprinting utility";
homepage = "https://github.com/dolevf/graphw00f";
license = licenses.bsd3;
maintainers = with maintainers; [ fab ];
mainProgram = "graphw00f";
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
copyDesktopItems,
jdk,
makeDesktopItem,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "graphwar";
version = "1.0.0";
src = fetchFromGitHub {
owner = "catabriga";
repo = "graphwar";
rev = version;
sha256 = "sha256-t3Y576dXWp2Mj6OSQN5cm9FuNBWNqKq6xxkVRbjIBgE=";
};
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
buildInputs = [ jdk ];
buildPhase = ''
runHook preBuild
mkdir -p out/
javac -d out/ -sourcepath src/ -classpath out/ -encoding utf8 src/**/*.java
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib/
mv out $out/lib/graphwar
cp -r rsc $out/lib/graphwar/rsc
makeWrapper ${jdk}/bin/java $out/bin/graphwar \
--add-flags "-classpath $out/lib/graphwar Graphwar.Graphwar"
makeWrapper ${jdk}/bin/java $out/bin/graphwar-roomserver \
--add-flags "-classpath $out/lib/graphwar RoomServer.RoomServer"
makeWrapper ${jdk}/bin/java $out/bin/graphwar-globalserver \
--add-flags "-classpath $out/lib/graphwar GlobalServer.GlobalServer"
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "graphwar";
exec = "graphwar";
desktopName = "Graphwar";
categories = [ "Game" ];
})
];
meta = with lib; {
homepage = "https://www.graphwar.com/";
description = "Artillery game in which you must hit your enemies using mathematical functions";
license = licenses.gpl3Plus;
platforms = jdk.meta.platforms;
maintainers = with maintainers; [ yrd ];
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchurl,
flex,
bison,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "graplang";
version = "1.46";
outputs = [
"out"
"man"
];
src = fetchurl {
url = "https://www.lunabase.org/~faber/Vault/software/grap/grap-${finalAttrs.version}.tar.gz";
hash = "sha512-7n+jLANU/x+wGrpjwYAnf45fQ5M91SwraiCbvUKe6XhWtilhGoT2yTlLkPlTihETTkizLyssW5gj5gbwNHaooA==";
};
nativeBuildInputs = [
flex
bison
];
meta = with lib; {
description = "Language for typesetting graphs";
longDescription = ''
Grap is an Expressive language for describing graphs and incorporating
them in typeset documents. It is implemented as a preprocessor to
Kernigan's pic language for describing languages, so any system that can
use pic can use grap. For sure, TeX and groff can use it.
'';
homepage = "https://www.lunabase.org/~faber/Vault/software/grap/";
changelog = "https://github.com/snorerot13/grap/blob/master/CHANGES";
license = licenses.bsd2;
maintainers = with maintainers; [ afh ];
mainProgram = "grap";
};
})

View File

@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchCrate,
}:
rustPlatform.buildRustPackage rec {
pname = "grass";
version = "0.13.4";
src = fetchCrate {
inherit pname version;
hash = "sha256-uk4XLF0QsH9Nhz73PmdSpwhxPdCh+DlNNqtbJtLWgNI=";
};
cargoHash = "sha256-2wJBYTOfaPBm+24ABl1cOs4W7UsRPYn70PSFDRRMCyU=";
# tests require rust nightly
doCheck = false;
meta = with lib; {
description = "Sass compiler written purely in Rust";
homepage = "https://github.com/connorskees/grass";
changelog = "https://github.com/connorskees/grass/blob/master/CHANGELOG.md#${
replaceStrings [ "." ] [ "" ] version
}";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
mainProgram = "grass";
};
}

View File

@@ -0,0 +1,170 @@
{
lib,
stdenv,
callPackage,
fetchFromGitHub,
makeWrapper,
wrapGAppsHook3,
withOpenGL ? !stdenv.hostPlatform.isDarwin,
bison,
blas,
cairo,
ffmpeg,
fftw,
flex,
freetype,
gdal,
geos,
lapack,
libGLU,
libiconv,
libpng,
libsvm,
libtiff,
libxml2,
llvmPackages,
netcdf,
pdal,
pkg-config,
libpq,
proj,
python3Packages,
readline,
sqlite,
wxGTK32,
zlib,
zstd,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "grass";
version = "8.4.1";
src = fetchFromGitHub {
owner = "OSGeo";
repo = "grass";
rev = finalAttrs.version;
hash = "sha256-q1jOimQi+24I1ZBf6Z0cvAyXcBFBpT5aWSNeG6n6y0k=";
};
nativeBuildInputs = [
makeWrapper
wrapGAppsHook3
bison
flex
gdal # for `gdal-config`
geos # for `geos-config`
netcdf # for `nc-config`
pkg-config
]
++ (with python3Packages; [
python-dateutil
numpy
wxpython
]);
buildInputs = [
blas
cairo
ffmpeg
fftw
freetype
gdal
geos
lapack
libpng
libsvm
libtiff
libxml2
netcdf
pdal
libpq
proj
readline
sqlite
wxGTK32
zlib
zstd
]
++ lib.optionals withOpenGL [ libGLU ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]
++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
strictDeps = true;
configureFlags = [
"--with-blas"
"--with-cairo-ldflags=-lfontconfig"
"--with-cxx"
"--with-fftw"
"--with-freetype"
"--with-geos"
"--with-gdal"
"--with-lapack"
"--with-libsvm"
"--with-nls"
"--with-openmp"
"--with-pdal"
"--with-postgres"
"--with-postgres-libs=${libpq}/lib/"
"--with-proj-includes=${proj.dev}/include"
"--with-proj-libs=${proj}/lib"
"--with-proj-share=${proj}/share/proj"
"--with-sqlite"
"--with-zstd"
"--without-bzlib"
"--without-mysql"
"--without-odbc"
]
++ lib.optionals (!withOpenGL) [
"--without-opengl"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
"--without-cairo"
"--without-freetype"
"--without-x"
];
# Otherwise a very confusing "Can't load GDAL library" error
makeFlags = lib.optional stdenv.hostPlatform.isDarwin "GDAL_DYNAMIC=";
/*
Ensures that the python script run at build time are actually executable;
otherwise, patchShebangs ignores them.
*/
postConfigure = ''
for f in $(find . -name '*.py'); do
chmod +x $f
done
patchShebangs */
'';
postInstall = ''
wrapProgram $out/bin/grass \
--set PYTHONPATH $PYTHONPATH \
--set GRASS_PYTHON ${python3Packages.python.interpreter} \
--suffix LD_LIBRARY_PATH ':' '${gdal}/lib'
ln -s $out/grass*/lib $out/lib
ln -s $out/grass*/include $out/include
'';
enableParallelBuilding = true;
passthru.tests = {
grass = callPackage ./tests.nix { grass = finalAttrs.finalPackage; };
};
meta = with lib; {
description = "GIS software suite used for geospatial data management and analysis, image processing, graphics and maps production, spatial modeling, and visualization";
homepage = "https://grass.osgeo.org/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ mpickering ];
teams = [ teams.geospatial ];
platforms = platforms.all;
mainProgram = "grass";
};
})

View File

@@ -0,0 +1,17 @@
{ runCommand, grass }:
let
inherit (grass) pname version;
in
runCommand "${pname}-tests" { meta.timeout = 60; } ''
HOME=$(mktemp -d)
${grass}/bin/grass --tmp-location EPSG:3857 --exec g.version \
| grep 'GRASS ${version}'
${grass}/bin/grass --tmp-location EPSG:3857 --exec g.mapset -l \
| grep 'PERMANENT'
touch $out
''

View File

@@ -0,0 +1,36 @@
diff -Nurp grav-src/system/src/Grav/Common/Cache.php grav-src-nixos/system/src/Grav/Common/Cache.php
--- grav-src/system/src/Grav/Common/Cache.php 1970-01-01 01:00:01.000000000 +0100
+++ grav-src-nixos/system/src/Grav/Common/Cache.php 2024-11-22 15:46:47.481175690 +0100
@@ -517,7 +517,7 @@ class Cache extends Getters
$output[] = '';
- if (($remove === 'all' || $remove === 'standard') && file_exists($user_config)) {
+ if (($remove === 'all' || $remove === 'standard') && file_exists($user_config) && is_writable($user_config)) {
touch($user_config);
$output[] = '<red>Touched: </red>' . $user_config;
@@ -544,7 +544,7 @@ class Cache extends Getters
{
$user_config = USER_DIR . 'config/system.yaml';
- if (file_exists($user_config)) {
+ if (file_exists($user_config) && is_writable($user_config)) {
touch($user_config);
}
diff -Nurp grav-src/system/src/Grav/Console/Gpm/SelfupgradeCommand.php grav-src-nixos/system/src/Grav/Console/Gpm/SelfupgradeCommand.php
--- grav-src/system/src/Grav/Console/Gpm/SelfupgradeCommand.php 1970-01-01 01:00:01.000000000 +0100
+++ grav-src-nixos/system/src/Grav/Console/Gpm/SelfupgradeCommand.php 2024-11-22 16:05:13.752536788 +0100
@@ -94,6 +94,11 @@ class SelfupgradeCommand extends GpmComm
$input = $this->getInput();
$io = $this->getIO();
+ # Adopted from Arch package.
+ $io->error('Grav cannot be upgraded this way as it has been installed with a distribution package.');
+ $io->writeln('Use Nix to upgrade.');
+ return 1;
+
if (!class_exists(ZipArchive::class)) {
$io->title('GPM Self Upgrade');
$io->error('php-zip extension needs to be enabled!');

View File

@@ -0,0 +1,43 @@
{
stdenvNoCC,
lib,
fetchzip,
nixosTests,
}:
let
version = "1.7.49.5";
in
stdenvNoCC.mkDerivation {
pname = "grav";
inherit version;
src = fetchzip {
url = "https://github.com/getgrav/grav/releases/download/${version}/grav-admin-v${version}.zip";
hash = "sha256-zhjsYWma0qze8zdzX01EauzMONeEC6TRkhdQJUoJEUQ=";
};
patches = [
# Disables functionality that attempts to edit files in Nix store. Also adds
# a block of the self-upgrade command.
./01-nix.patch
];
installPhase = ''
runHook preInstall
mkdir -p $out/
cp -R . $out/
runHook postInstall
'';
passthru.tests = {
grav = nixosTests.grav;
};
meta = with lib; {
description = "Fast, simple, and flexible, file-based web platform";
homepage = "https://getgrav.com";
maintainers = with maintainers; [ rycee ];
license = licenses.mit;
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
SDL,
SDL_ttf,
SDL_image,
libSM,
libICE,
libGLU,
libGL,
libpng,
lua5,
autoconf,
automake,
mesa,
}:
stdenv.mkDerivation rec {
pname = "gravit";
version = "0.5.1";
src = fetchFromGitHub {
owner = "gak";
repo = "gravit";
rev = version;
hash = "sha256-JuqnLLD5+Ec8kQI0SK98V1O6TTbGM6+yKn5KCHe85eM=";
};
patches = [
# Pull fix pending upstream inclusion for -fno-common toolchains:
# https://github.com/gak/gravit/pull/100
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/gak/gravit/commit/0f848834889212f16201fd404d2d5b9bb5b47d23.patch";
hash = "sha256-k1aMIg7idMt53o6dFgIKJflOMp0Jp5NwgWEijcIwXrQ=";
})
];
buildInputs = [
libGLU
libGL
SDL
SDL_ttf
SDL_image
lua5
libpng
libSM
libICE
];
nativeBuildInputs = [
autoconf
automake
];
preConfigure = ''
./autogen.sh
# Build fails on Linux with windres.
export ac_cv_prog_WINDRES=
'';
enableParallelBuilding = true;
meta = {
broken = (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
homepage = "https://github.com/gak/gravit";
description = "Beautiful OpenGL-based gravity simulator";
mainProgram = "gravit";
license = lib.licenses.gpl2Plus;
longDescription = ''
Gravit is a gravity simulator which runs under Linux, Windows and
macOS. It uses Newtonian physics using the Barnes-Hut N-body
algorithm. Although the main goal of Gravit is to be as accurate
as possible, it also creates beautiful looking gravity patterns.
It records the history of each particle so it can animate and
display a path of its travels. At any stage you can rotate your
view in 3D and zoom in and out.
'';
inherit (mesa.meta) platforms;
hydraPlatforms = lib.platforms.linux; # darwin times out
};
}

752
pkgs/by-name/gr/grayjay/deps.json generated Normal file
View File

@@ -0,0 +1,752 @@
[
{
"pname": "coverlet.collector",
"version": "3.1.2",
"hash": "sha256-v7ZoEFZyhF8VcRZj1uim4HNiRsG+XdJ4x/dwPBIWUz8="
},
{
"pname": "coverlet.collector",
"version": "6.0.0",
"hash": "sha256-IEmweTMapcPhFHpmJsPXfmMhravYOrWupgjeOvMmQ4o="
},
{
"pname": "Dapper",
"version": "2.1.28",
"hash": "sha256-qCbqEwIB/j6HToEPpDEdQGGIPGQNmrULrCHnEGZSd5c="
},
{
"pname": "Fizzler",
"version": "1.2.0",
"hash": "sha256-lHoNw1Ze197Tkhlpg4QjX5wC0Xmeu7TUKBTzEineE60="
},
{
"pname": "Fizzler.Systems.HtmlAgilityPack",
"version": "1.2.1",
"hash": "sha256-ov8Kc3nBcRxk0I+WPR11QFlD1607ck31M+37SjIElbc="
},
{
"pname": "Google.Protobuf",
"version": "3.25.3",
"hash": "sha256-uG40xD6QkxoTOaTYfBAeVOIPE38qlbCa2RxUzOH0HLE="
},
{
"pname": "HtmlAgilityPack",
"version": "1.11.58",
"hash": "sha256-VCrBPH6Waw3LmZEKStBSd5uSH2vicndwYazYX6IdnYE="
},
{
"pname": "HtmlAgilityPack",
"version": "1.5.1",
"hash": "sha256-Jr+DOYzDaJrGRYUZ13zrz/6I2cCh6B+0etWPvPYkJU8="
},
{
"pname": "libsodium",
"version": "1.0.20",
"hash": "sha256-BsitQQnUSm1YupzI5N/LFx0kPFdk1FP8VdM1S3uttvs="
},
{
"pname": "Microsoft.ClearScript.Core",
"version": "7.4.5",
"hash": "sha256-6wRLv+fbo2SF9irQ8BwmUR7JcQAlyEk1Dov+teSXY+E="
},
{
"pname": "Microsoft.ClearScript.V8",
"version": "7.4.5",
"hash": "sha256-MXl1n1RF6z95IbpXmSGAwraP8EpvPli16ySFGfc/ZxY="
},
{
"pname": "Microsoft.ClearScript.V8.ICUData",
"version": "7.4.5",
"hash": "sha256-54bbiVJoXDrePISZHuEcOax+kgyaIftL684bt3EgYy8="
},
{
"pname": "Microsoft.ClearScript.V8.Native.linux-x64",
"version": "7.4.5",
"hash": "sha256-MCRTRO7WiWnWYdvYSwv1kvZakcVcvckio98SJLhYgoM="
},
{
"pname": "Microsoft.ClearScript.V8.Native.osx-arm64",
"version": "7.4.5",
"hash": "sha256-SbcABxK8rPIE6SV1JBP2U3FYmrgaY7iB9sFQKNLyAVs="
},
{
"pname": "Microsoft.ClearScript.V8.Native.osx-x64",
"version": "7.4.5",
"hash": "sha256-IvttjtyJXWVhuJNkqqxNpLwM3WtljHuHSaKtSkblAqE="
},
{
"pname": "Microsoft.ClearScript.V8.Native.win-x64",
"version": "7.4.5",
"hash": "sha256-WF4K7g1w510viiXHJJjKQrsD/mvb99tF76yBCljN1Qw="
},
{
"pname": "Microsoft.CodeCoverage",
"version": "17.3.2",
"hash": "sha256-APxmbKMNQKWuFQMJjkVr2zIqv/bLUTMm5NRGVLegBbg="
},
{
"pname": "Microsoft.CodeCoverage",
"version": "17.6.0",
"hash": "sha256-sYk+9Gj1M1HI6yEB8ZJQ4fiqGjYos+orebV8blFDSQs="
},
{
"pname": "Microsoft.CSharp",
"version": "4.0.1",
"hash": "sha256-0huoqR2CJ3Z9Q2peaKD09TV3E6saYSqDGZ290K8CrH8="
},
{
"pname": "Microsoft.CSharp",
"version": "4.3.0",
"hash": "sha256-a3dAiPaVuky0wpcHmpTVtAQJNGZ2v91/oArA+dpJgj8="
},
{
"pname": "Microsoft.Data.Sqlite",
"version": "8.0.1",
"hash": "sha256-2yNZYPTdqYRss9OqC40RjOL7HSXK97p9awIDd/MrRPk="
},
{
"pname": "Microsoft.Data.Sqlite.Core",
"version": "8.0.1",
"hash": "sha256-H3yveFzvMNKKVnEIa1bvqb2q2MKxS9Am+fsk3KX298Y="
},
{
"pname": "Microsoft.NET.Test.Sdk",
"version": "17.3.2",
"hash": "sha256-1fZ/rrSbuyYUfvwyA3otFQdL0Y/H48goAVyhiLs1oF4="
},
{
"pname": "Microsoft.NET.Test.Sdk",
"version": "17.6.0",
"hash": "sha256-pogseJyMGIikTZORsDXKwyAhRPTkxiOAAV+ceR6/3K4="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "1.1.0",
"hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="
},
{
"pname": "Microsoft.TestPlatform.ObjectModel",
"version": "17.3.2",
"hash": "sha256-wdLQSEjvFjApEKU82Ev+y1kHVxeIlrjkuj3wNktGQy8="
},
{
"pname": "Microsoft.TestPlatform.ObjectModel",
"version": "17.6.0",
"hash": "sha256-weQPisiWSuM5VEeZco4S0QHEXd2bZZwlbyHoaCET4uc="
},
{
"pname": "Microsoft.TestPlatform.TestHost",
"version": "17.3.2",
"hash": "sha256-ySBqawHGZ/Dwoj2UnAzk1Ezxt4qR1AuEY73U/buqNiE="
},
{
"pname": "Microsoft.TestPlatform.TestHost",
"version": "17.6.0",
"hash": "sha256-Ee2SKz5/571l1aYP0b/Gfamsz+v6cjzyu2sKTC6Ld5s="
},
{
"pname": "Microsoft.Win32.Primitives",
"version": "4.3.0",
"hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg="
},
{
"pname": "MSTest.TestAdapter",
"version": "2.2.10",
"hash": "sha256-xpt9NDMDkoV/SzTWLgpKbqMOnhbUKZlBrdFwMGwpzHA="
},
{
"pname": "MSTest.TestAdapter",
"version": "3.0.4",
"hash": "sha256-cxynZ6I681YIclJeGtv1OiAxMOdx7FDyVIzNOg10Tgo="
},
{
"pname": "MSTest.TestFramework",
"version": "2.2.10",
"hash": "sha256-PEoY4N5F+xhQa6wXiX8SaVHAxw9C7fN+zSNfoModt0g="
},
{
"pname": "MSTest.TestFramework",
"version": "3.0.4",
"hash": "sha256-aJqGvGfM2fl2dG05PFgPth/1qMhVpDRBMWuNu4yt4Dc="
},
{
"pname": "NETStandard.Library",
"version": "1.6.1",
"hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw="
},
{
"pname": "Newtonsoft.Json",
"version": "10.0.3",
"hash": "sha256-WEHCjp+OMr5axXQjFsh7TMDE/ttE35nMv5RBPdcxfhs="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.1",
"hash": "sha256-K2tSVW4n4beRPzPu3rlVaBEMdGvWSv/3Q1fxaDh4Mjo="
},
{
"pname": "Newtonsoft.Json",
"version": "9.0.1",
"hash": "sha256-mYCBrgUhIJFzRuLLV9SIiIFHovzfR8Uuqfg6e08EnlU="
},
{
"pname": "NuGet.Frameworks",
"version": "5.11.0",
"hash": "sha256-n+hxcrf+sXM80Tv9YH9x4+hwTslVidFq4tjBNPAzYnM="
},
{
"pname": "runtime.any.System.Collections",
"version": "4.3.0",
"hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="
},
{
"pname": "runtime.any.System.Globalization",
"version": "4.3.0",
"hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU="
},
{
"pname": "runtime.any.System.IO",
"version": "4.3.0",
"hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE="
},
{
"pname": "runtime.any.System.Reflection",
"version": "4.3.0",
"hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk="
},
{
"pname": "runtime.any.System.Reflection.Primitives",
"version": "4.3.0",
"hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ="
},
{
"pname": "runtime.any.System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4="
},
{
"pname": "runtime.any.System.Runtime",
"version": "4.3.0",
"hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM="
},
{
"pname": "runtime.any.System.Text.Encoding",
"version": "4.3.0",
"hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs="
},
{
"pname": "runtime.any.System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4="
},
{
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps="
},
{
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I="
},
{
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA="
},
{
"pname": "runtime.native.System",
"version": "4.3.0",
"hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y="
},
{
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I="
},
{
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM="
},
{
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4="
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0="
},
{
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4="
},
{
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g="
},
{
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc="
},
{
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw="
},
{
"pname": "runtime.unix.System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI="
},
{
"pname": "runtime.unix.System.Private.Uri",
"version": "4.3.0",
"hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="
},
{
"pname": "runtime.unix.System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="
},
{
"pname": "SQLitePCLRaw.bundle_e_sqlite3",
"version": "2.1.6",
"hash": "sha256-dZD/bZsYXjOu46ZH5Y/wgh0uhHOqIxC+S+0ecKhr718="
},
{
"pname": "SQLitePCLRaw.core",
"version": "2.1.6",
"hash": "sha256-RxWjm52PdmMV98dgDy0BCpF988+BssRZUgALLv7TH/E="
},
{
"pname": "SQLitePCLRaw.lib.e_sqlite3",
"version": "2.1.6",
"hash": "sha256-uHt5d+SFUkSd6WD7Tg0J3e8eVoxy/FM/t4PAkc9PJT0="
},
{
"pname": "SQLitePCLRaw.provider.e_sqlite3",
"version": "2.1.6",
"hash": "sha256-zHc/YZsd72eXlI8ba1tv58HZWUIiyjJaxq2CCP1hQe8="
},
{
"pname": "System.AppContext",
"version": "4.3.0",
"hash": "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg="
},
{
"pname": "System.Collections",
"version": "4.0.11",
"hash": "sha256-puoFMkx4Z55C1XPxNw3np8nzNGjH+G24j43yTIsDRL0="
},
{
"pname": "System.Collections",
"version": "4.3.0",
"hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="
},
{
"pname": "System.Collections.Concurrent",
"version": "4.3.0",
"hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI="
},
{
"pname": "System.Collections.NonGeneric",
"version": "4.3.0",
"hash": "sha256-8/yZmD4jjvq7m68SPkJZLBQ79jOTOyT5lyzX4SCYAx8="
},
{
"pname": "System.Collections.Specialized",
"version": "4.3.0",
"hash": "sha256-QNg0JJNx+zXMQ26MJRPzH7THdtqjrNtGLUgaR1SdvOk="
},
{
"pname": "System.ComponentModel",
"version": "4.3.0",
"hash": "sha256-i00uujMO4JEDIEPKLmdLY3QJ6vdSpw6Gh9oOzkFYBiU="
},
{
"pname": "System.ComponentModel.Primitives",
"version": "4.3.0",
"hash": "sha256-IOMJleuIBppmP4ECB3uftbdcgL7CCd56+oAD/Sqrbus="
},
{
"pname": "System.ComponentModel.TypeConverter",
"version": "4.3.0",
"hash": "sha256-PSDiPYt8PgTdTUBz+GH6lHCaM1YgfObneHnZsc8Fz54="
},
{
"pname": "System.Console",
"version": "4.3.0",
"hash": "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo="
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.0.11",
"hash": "sha256-P+rSQJVoN6M56jQbs76kZ9G3mAWFdtF27P/RijN8sj4="
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="
},
{
"pname": "System.Diagnostics.TextWriterTraceListener",
"version": "4.3.0",
"hash": "sha256-gx3IHPvPNRmwpLwtswu12U/ow4f/7OPAeHxyMxw5qyU="
},
{
"pname": "System.Diagnostics.Tools",
"version": "4.3.0",
"hash": "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y="
},
{
"pname": "System.Diagnostics.TraceSource",
"version": "4.3.0",
"hash": "sha256-xpxwaXsRcgso8Gj0cqY4+Hvvz6vZkmEMh5/J204j3M8="
},
{
"pname": "System.Diagnostics.Tracing",
"version": "4.3.0",
"hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q="
},
{
"pname": "System.Dynamic.Runtime",
"version": "4.0.11",
"hash": "sha256-qWqFVxuXioesVftv2RVJZOnmojUvRjb7cS3Oh3oTit4="
},
{
"pname": "System.Dynamic.Runtime",
"version": "4.3.0",
"hash": "sha256-k75gjOYimIQtLBD5NDzwwi3ZMUBPRW3jmc3evDMMJbU="
},
{
"pname": "System.Globalization",
"version": "4.0.11",
"hash": "sha256-rbSgc2PIEc2c2rN6LK3qCREAX3DqA2Nq1WcLrZYsDBw="
},
{
"pname": "System.Globalization",
"version": "4.3.0",
"hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="
},
{
"pname": "System.Globalization.Calendars",
"version": "4.3.0",
"hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc="
},
{
"pname": "System.IO",
"version": "4.1.0",
"hash": "sha256-V6oyQFwWb8NvGxAwvzWnhPxy9dKOfj/XBM3tEC5aHrw="
},
{
"pname": "System.IO",
"version": "4.3.0",
"hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="
},
{
"pname": "System.IO.Compression",
"version": "4.3.0",
"hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA="
},
{
"pname": "System.IO.Compression.ZipFile",
"version": "4.3.0",
"hash": "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs="
},
{
"pname": "System.IO.FileSystem",
"version": "4.3.0",
"hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw="
},
{
"pname": "System.IO.FileSystem.Primitives",
"version": "4.3.0",
"hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg="
},
{
"pname": "System.IO.Pipelines",
"version": "9.0.0",
"hash": "sha256-vb0NrPjfEao3kfZ0tavp2J/29XnsQTJgXv3/qaAwwz0="
},
{
"pname": "System.Linq",
"version": "4.1.0",
"hash": "sha256-ZQpFtYw5N1F1aX0jUK3Tw+XvM5tnlnshkTCNtfVA794="
},
{
"pname": "System.Linq",
"version": "4.3.0",
"hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="
},
{
"pname": "System.Linq.Expressions",
"version": "4.1.0",
"hash": "sha256-7zqB+FXgkvhtlBzpcZyd81xczWP0D3uWssyAGw3t7b4="
},
{
"pname": "System.Linq.Expressions",
"version": "4.3.0",
"hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8="
},
{
"pname": "System.Memory",
"version": "4.5.3",
"hash": "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk="
},
{
"pname": "System.Net.Http",
"version": "4.3.0",
"hash": "sha256-UoBB7WPDp2Bne/fwxKF0nE8grJ6FzTMXdT/jfsphj8Q="
},
{
"pname": "System.Net.Primitives",
"version": "4.3.0",
"hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE="
},
{
"pname": "System.Net.Sockets",
"version": "4.3.0",
"hash": "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus="
},
{
"pname": "System.ObjectModel",
"version": "4.0.12",
"hash": "sha256-MudZ/KYcvYsn2cST3EE049mLikrNkmE7QoUoYKKby+s="
},
{
"pname": "System.ObjectModel",
"version": "4.3.0",
"hash": "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q="
},
{
"pname": "System.Private.Uri",
"version": "4.3.0",
"hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM="
},
{
"pname": "System.Reflection",
"version": "4.1.0",
"hash": "sha256-idZHGH2Yl/hha1CM4VzLhsaR8Ljo/rV7TYe7mwRJSMs="
},
{
"pname": "System.Reflection",
"version": "4.3.0",
"hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="
},
{
"pname": "System.Reflection.Extensions",
"version": "4.0.1",
"hash": "sha256-NsfmzM9G/sN3H8X2cdnheTGRsh7zbRzvegnjDzDH/FQ="
},
{
"pname": "System.Reflection.Extensions",
"version": "4.3.0",
"hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk="
},
{
"pname": "System.Reflection.Metadata",
"version": "1.6.0",
"hash": "sha256-JJfgaPav7UfEh4yRAQdGhLZF1brr0tUWPl6qmfNWq/E="
},
{
"pname": "System.Reflection.Primitives",
"version": "4.3.0",
"hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM="
},
{
"pname": "System.Reflection.TypeExtensions",
"version": "4.3.0",
"hash": "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng="
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.0.1",
"hash": "sha256-cZ2/3/fczLjEpn6j3xkgQV9ouOVjy4Kisgw5xWw9kSw="
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="
},
{
"pname": "System.Runtime",
"version": "4.1.0",
"hash": "sha256-FViNGM/4oWtlP6w0JC0vJU+k9efLKZ+yaXrnEeabDQo="
},
{
"pname": "System.Runtime",
"version": "4.3.0",
"hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="
},
{
"pname": "System.Runtime.Extensions",
"version": "4.1.0",
"hash": "sha256-X7DZ5CbPY7jHs20YZ7bmcXs9B5Mxptu/HnBUvUnNhGc="
},
{
"pname": "System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="
},
{
"pname": "System.Runtime.Handles",
"version": "4.3.0",
"hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms="
},
{
"pname": "System.Runtime.InteropServices",
"version": "4.3.0",
"hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="
},
{
"pname": "System.Runtime.InteropServices.RuntimeInformation",
"version": "4.3.0",
"hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA="
},
{
"pname": "System.Runtime.Numerics",
"version": "4.3.0",
"hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc="
},
{
"pname": "System.Runtime.Serialization.Formatters",
"version": "4.3.0",
"hash": "sha256-Feic7MGKVG4imh7kpLkPHmApQzYjq7SxHnazh2wZkoQ="
},
{
"pname": "System.Runtime.Serialization.Primitives",
"version": "4.1.1",
"hash": "sha256-80B05oxJbPLGq2pGOSl6NlZvintX9A1CNpna2aN0WRA="
},
{
"pname": "System.Runtime.Serialization.Primitives",
"version": "4.3.0",
"hash": "sha256-zu5m1M9usend+i9sbuD6Xbizdo8Z6N5PEF9DAtEVewc="
},
{
"pname": "System.Security.Cryptography.Algorithms",
"version": "4.3.0",
"hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8="
},
{
"pname": "System.Security.Cryptography.Encoding",
"version": "4.3.0",
"hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss="
},
{
"pname": "System.Security.Cryptography.Primitives",
"version": "4.3.0",
"hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318="
},
{
"pname": "System.Security.Cryptography.X509Certificates",
"version": "4.3.0",
"hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0="
},
{
"pname": "System.Text.Encoding",
"version": "4.0.11",
"hash": "sha256-PEailOvG05CVgPTyKLtpAgRydlSHmtd5K0Y8GSHY2Lc="
},
{
"pname": "System.Text.Encoding",
"version": "4.3.0",
"hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg="
},
{
"pname": "System.Text.Encoding.Extensions",
"version": "4.0.11",
"hash": "sha256-+kf7J3dEhgCbnCM5vHYlsTm5/R/Ud0Jr6elpHm922iI="
},
{
"pname": "System.Text.Encoding.Extensions",
"version": "4.3.0",
"hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc="
},
{
"pname": "System.Text.Encodings.Web",
"version": "9.0.0",
"hash": "sha256-WGaUklQEJywoGR2jtCEs5bxdvYu5SHaQchd6s4RE5x0="
},
{
"pname": "System.Text.Json",
"version": "9.0.0",
"hash": "sha256-aM5Dh4okLnDv940zmoFAzRmqZre83uQBtGOImJpoIqk="
},
{
"pname": "System.Text.RegularExpressions",
"version": "4.1.0",
"hash": "sha256-x6OQN6MCN7S0fJ6EFTfv4rczdUWjwuWE9QQ0P6fbh9c="
},
{
"pname": "System.Text.RegularExpressions",
"version": "4.3.0",
"hash": "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0="
},
{
"pname": "System.Threading",
"version": "4.0.11",
"hash": "sha256-mob1Zv3qLQhQ1/xOLXZmYqpniNUMCfn02n8ZkaAhqac="
},
{
"pname": "System.Threading",
"version": "4.3.0",
"hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="
},
{
"pname": "System.Threading.Tasks",
"version": "4.0.11",
"hash": "sha256-5SLxzFg1df6bTm2t09xeI01wa5qQglqUwwJNlQPJIVs="
},
{
"pname": "System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="
},
{
"pname": "System.Threading.Timer",
"version": "4.3.0",
"hash": "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s="
},
{
"pname": "System.Xml.ReaderWriter",
"version": "4.0.11",
"hash": "sha256-haZAFFQ9Sl2DhfvEbdx2YRqKEoxNMU5STaqpMmXw0zA="
},
{
"pname": "System.Xml.ReaderWriter",
"version": "4.3.0",
"hash": "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA="
},
{
"pname": "System.Xml.XDocument",
"version": "4.0.11",
"hash": "sha256-KPz1kxe0RUBM+aoktJ/f9p51GudMERU8Pmwm//HdlFg="
},
{
"pname": "System.Xml.XDocument",
"version": "4.3.0",
"hash": "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI="
},
{
"pname": "System.Xml.XmlDocument",
"version": "4.3.0",
"hash": "sha256-kbuV4Y7rVJkfMp2Kgoi8Zvdatm9CZNmlKB3GZgANvy4="
},
{
"pname": "ZstdNet",
"version": "1.4.5",
"hash": "sha256-8ilfyR4ajq9hXTgsZQbvfFW0T00BfW5Cv77B4qKCNlw="
}
]

View File

@@ -0,0 +1,205 @@
{
buildDotnetModule,
fetchFromGitLab,
dotnetCorePackages,
buildNpmPackage,
lib,
libz,
icu,
openssl,
xorg,
gtk3,
glib,
nss,
nspr,
dbus,
atk,
cups,
libdrm,
expat,
libxkbcommon,
pango,
cairo,
udev,
alsa-lib,
mesa,
libGL,
libsecret,
nix-update-script,
autoPatchelfHook,
makeDesktopItem,
copyDesktopItems,
libgcc,
krb5,
wrapGAppsHook3,
_experimental-update-script-combinators,
}:
let
version = "9";
src = fetchFromGitLab {
domain = "gitlab.futo.org";
owner = "videostreaming";
repo = "Grayjay.Desktop";
tag = version;
hash = "sha256-O211trFJ9tQRVdlztp5ER0Ej6SIrCDn45mRGns7NV90=";
fetchSubmodules = true;
fetchLFS = true;
};
frontend = buildNpmPackage {
name = "grayjay-frontend";
inherit version src;
sourceRoot = "source/Grayjay.Desktop.Web";
npmBuildScript = "build";
npmDepsHash = "sha256-pTEbMSAJwTY6ZRriPWfBFnRHSYufSsD0d+hWGz35xFM=";
installPhase = ''
runHook preInstall
cp -r dist/ $out
runHook postInstall
'';
};
in
buildDotnetModule (finalAttrs: {
pname = "grayjay";
inherit version src frontend;
buildInputs = [
openssl
libgcc
xorg.libX11
gtk3
glib
alsa-lib
mesa
nspr
nss
icu
krb5
];
nativeBuildInputs = [
autoPatchelfHook
wrapGAppsHook3
copyDesktopItems
];
dontWrapGApps = true;
desktopItems = [
(makeDesktopItem {
name = "Grayjay";
exec = "Grayjay";
icon = "grayjay";
comment = "Cross platform media application for streaming and downloading media";
desktopName = "Grayjay Desktop";
categories = [ "Network" ];
})
];
projectFile = [
"Grayjay.ClientServer/Grayjay.ClientServer.csproj"
"Grayjay.Engine/Grayjay.Engine/Grayjay.Engine.csproj"
"Grayjay.Desktop.CEF/Grayjay.Desktop.CEF.csproj"
"FUTO.MDNS/FUTO.MDNS/FUTO.MDNS.csproj"
"JustCef/DotCef.csproj"
];
testProjectFile = [
"Grayjay.Desktop.Tests/Grayjay.Desktop.Tests.csproj"
"Grayjay.Engine/Grayjay.Engine.Tests/Grayjay.Engine.Tests.csproj"
];
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_9_0 // {
inherit
(dotnetCorePackages.combinePackages [
dotnetCorePackages.sdk_9_0
dotnetCorePackages.sdk_8_0
])
packages
targetPackages
;
};
dotnet-runtime = dotnetCorePackages.aspnetcore_9_0;
executables = [ "Grayjay" ];
preBuild = ''
rm -r Grayjay.ClientServer/wwwroot/web
cp -r ${frontend} Grayjay.ClientServer/wwwroot/web
'';
postInstall = ''
chmod +x $out/lib/grayjay/cef/dotcefnative
chmod +x $out/lib/grayjay/ffmpeg
rm $out/lib/grayjay/Portable
ln -s /tmp/grayjay-launch $out/lib/grayjay/launch
ln -s /tmp/grayjay-cef-launch $out/lib/grayjay/cef/launch
mkdir -p $out/share/icons/hicolor/scalable/apps
ln -s $out/lib/grayjay/grayjay.png $out/share/icons/hicolor/scalable/apps/grayjay.png
'';
makeWrapperArgs = [
"--chdir"
"${placeholder "out"}/lib/grayjay"
];
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
runtimeDeps = [
libz
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
dbus
atk
cups
libdrm
expat
libxkbcommon
pango
cairo
udev
libGL
libsecret
];
passthru.updateScript = _experimental-update-script-combinators.sequence [
(nix-update-script {
extraArgs = [
"--subpackage"
"frontend"
"--url"
"https://github.com/futo-org/Grayjay.Desktop"
];
})
(finalAttrs.passthru.fetch-deps)
];
meta = {
description = "Cross-platform application to stream and download content from various sources";
longDescription = ''
Grayjay is a cross-platform application that enables users to
stream and download multimedia content from various online sources,
most prominently YouTube.
It also offers an extensible plugin API to create and import new
integrations.
'';
homepage = "https://grayjay.app/desktop/";
license = lib.licenses.sfl;
maintainers = with lib.maintainers; [ samfundev ];
platforms = [ "x86_64-linux" ];
mainProgram = "Grayjay";
};
})

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "grb";
version = "0-unstable-2022-07-02";
src = fetchFromGitHub {
owner = "LukeSmithxyz";
repo = "grb";
rev = "35a5353ab147b930c39e1ccd369791cc4c27f0df";
sha256 = "sha256-hQ21DXnkBJVCgGXQKDR+DjaDC3RXS2pNmSLDoHvHA4E=";
};
makeFlags = [
"PREFIX=${placeholder "out"}"
];
meta = with lib; {
description = "Cli-accessible Greek Bible with the Septuagint, SBL and Apocrypha";
homepage = "https://github.com/LukeSmithxyz/grb";
license = licenses.publicDomain;
maintainers = [ maintainers.cafkafk ];
mainProgram = "grb";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
python3Packages,
fetchFromGitHub,
installShellFiles,
}:
python3Packages.buildPythonApplication rec {
pname = "grc";
version = "1.13";
format = "other";
src = fetchFromGitHub {
owner = "garabik";
repo = "grc";
rev = "v${version}";
sha256 = "1h0h88h484a9796hai0wasi1xmjxxhpyxgixn6fgdyc5h69gv8nl";
};
postPatch = ''
for f in grc grcat; do
substituteInPlace $f \
--replace /usr/local/ $out/
done
# Support for absolute store paths.
substituteInPlace grc.conf \
--replace "^([/\w\.]+\/)" "^([/\w\.\-]+\/)"
'';
nativeBuildInputs = [ installShellFiles ];
installPhase = ''
runHook preInstall
./install.sh "$out" "$out"
installShellCompletion --zsh --name _grc _grc
runHook postInstall
'';
meta = {
homepage = "http://kassiopeia.juls.savba.sk/~garabik/software/grc.html";
description = "Generic text colouriser";
longDescription = ''
Generic Colouriser is yet another colouriser (written in Python) for
beautifying your logfiles or output of commands.
'';
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
azahi
lovek323
peterhoeg
];
platforms = lib.platforms.unix;
mainProgram = "grc";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "grcov";
version = "0.9.1";
src = fetchFromGitHub {
owner = "mozilla";
repo = "grcov";
tag = "v${finalAttrs.version}";
hash = "sha256-e3RQn6wKvVm40UK8ZlgIi2gRS9eEFBnEXdmXtCgv0Go=";
};
cargoHash = "sha256-v4laGVbWmK8WFJXX5ChtViyKyMtmwpehSgNG6F31Mn0=";
# tests do not find grcov path correctly
checkFlags =
let
skipList = [
"test_coveralls_service_job_id_is_not_sufficient"
"test_coveralls_service_name_is_not_sufficient"
"test_coveralls_works_with_just_service_name_and_job_id_args"
"test_coveralls_works_with_just_token_arg"
"test_integration"
"test_integration_guess_single_file"
"test_integration_zip_dir"
"test_integration_zip_zip"
];
skipFlag = test: "--skip " + test;
in
builtins.concatStringsSep " " (map skipFlag skipList);
meta = {
description = "Rust tool to collect and aggregate code coverage data for multiple source files";
mainProgram = "grcov";
homepage = "https://github.com/mozilla/grcov";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ DieracDelta ];
};
})

View File

@@ -0,0 +1,43 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "greaseweazle";
version = "1.22";
pyproject = true;
src = fetchFromGitHub {
owner = "keirf";
repo = "greaseweazle";
rev = "v${version}";
hash = "sha256-Ki4OvtcFn5DH87OCWY7xN9fRhGxlzS9QIuQCJxPWJco=";
};
build-system = with python3.pkgs; [
setuptools
setuptools-scm
wheel
];
dependencies = with python3.pkgs; [
crcmod
bitarray
pyserial
requests
];
pythonImportsCheck = [
"greaseweazle"
];
meta = {
description = "Tools for accessing a floppy drive at the raw flux level";
homepage = "https://github.com/keirf/greaseweazle";
license = lib.licenses.unlicense;
maintainers = with lib.maintainers; [ matthewcroughan ];
mainProgram = "greaseweazle";
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitLab,
ncurses,
asciidoctor,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "greed";
version = "4.3";
src = fetchFromGitLab {
owner = "esr";
repo = "greed";
tag = finalAttrs.version;
hash = "sha256-NmX0hYHODe55N0edhdfdm0a/Yqm/UwkU/RREjYl3ePc=";
};
postPatch = ''
substituteInPlace Makefile \
--replace-fail "-lcurses" "-lncurses" \
--replace-fail "BIN=/usr/games" "BIN=$out/bin" \
--replace-fail "/usr/share" "$out/share" \
--replace-fail "/usr/games/lib/greed.hs" "/var/lib/greed/greed.hs"
'';
buildInputs = [
ncurses
];
nativeBuildInputs = [
asciidoctor
];
preInstall = ''
mkdir -p $out/bin
mkdir -p $out/share/man/man6
'';
passthru = {
updateScript = gitUpdater { };
};
meta = {
homepage = "http://www.catb.org/~esr/";
platforms = lib.platforms.unix;
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
description = "Game of Consumption";
changelog = "https://gitlab.com/esr/greed/-/blob/${finalAttrs.version}/NEWS.adoc?ref_type=tags";
mainProgram = "greed";
};
})

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchurl,
openjdk21,
openjfx21,
glib,
dpkg,
wrapGAppsHook3,
}:
let
openjdk = openjdk21.override {
enableJavaFX = true;
openjfx_jdk = openjfx21.override { withWebKit = true; };
};
in
stdenv.mkDerivation rec {
pname = "greenfoot";
version = "3.9.0";
src = fetchurl {
# We use the deb here. First instinct might be to go for the "generic" JAR
# download, but that is actually a graphical installer that is much harder
# to unpack than the deb.
url = "https://www.greenfoot.org/download/files/Greenfoot-linux-arm64-${
builtins.replaceStrings [ "." ] [ "" ] version
}.deb";
hash = "sha256-d5bkK+teTA4fxFb46ovbZE28l8WILGStv3Vg3nJZfv0=";
};
nativeBuildInputs = [
dpkg
wrapGAppsHook3
];
buildInputs = [ glib ];
dontWrapGApps = true;
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r usr/* $out
rm -r $out/share/greenfoot/jdk
rm -r $out/share/greenfoot/javafx-*.jar
makeWrapper ${openjdk}/bin/java $out/bin/greenfoot \
"''${gappsWrapperArgs[@]}" \
--add-flags "-Dawt.useSystemAAFontSettings=gasp -Xmx512M \
--add-opens javafx.graphics/com.sun.glass.ui=ALL-UNNAMED \
-cp $out/share/greenfoot/boot.jar bluej.Boot \
-greenfoot=true -bluej.compiler.showunchecked=false \
-greenfoot.scenarios=$out/share/doc/Greenfoot/scenarios \
-greenfoot.url.javadoc=file://$out/share/doc/Greenfoot/API"
runHook postInstall
'';
meta = with lib; {
description = "Simple integrated development environment for Java";
homepage = "https://www.greenfoot.org/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = with licenses; [
gpl2Plus
classpathException20
];
mainProgram = "greenfoot";
maintainers = [ maintainers.chvp ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
buildGoModule,
coreutils,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "greenmask";
version = "0.2.14";
src = fetchFromGitHub {
owner = "GreenmaskIO";
repo = "greenmask";
tag = "v${version}";
hash = "sha256-AHZJWYHfUKYNXPP6vFIM5tdr5aQ8q2pkqB/M1lhxUic=";
};
vendorHash = "sha256-t2U65GAGBGdMRXPTkCQCuXfLuqohA6erTlvAN/xx/ek=";
subPackages = [ "cmd/greenmask/" ];
ldflags = [
"-s"
"-w"
"-X=github.com/greenmaskio/greenmask/cmd/greenmask/cmd.Version=${version}"
];
nativeCheckInputs = [ coreutils ];
preCheck = ''
substituteInPlace internal/db/postgres/transformers/custom/dynamic_definition_test.go \
--replace-fail "/bin/echo" "${coreutils}/bin/echo"
substituteInPlace tests/integration/greenmask/main_test.go \
--replace-fail "TestTocLibrary" "SkipTestTocLibrary" \
--replace-fail "TestGreenmaskBackwardCompatibility" "SkipTestGreenmaskBackwardCompatibility"
substituteInPlace tests/integration/storages/main_test.go \
--replace-fail "TestS3Storage" "SkipTestS3Storage"
'';
meta = {
description = "PostgreSQL database anonymization tool";
homepage = "https://github.com/GreenmaskIO/greenmask";
changelog = "https://github.com/GreenmaskIO/greenmask/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "greenmask";
};
}

View File

@@ -0,0 +1,48 @@
{
stdenv,
lib,
fetchFromGitHub,
gfortran,
cmake,
pkg-config,
blas,
lapack,
}:
stdenv.mkDerivation rec {
pname = "greenx";
version = "2.2";
src = fetchFromGitHub {
owner = "nomad-coe";
repo = "greenx";
rev = "v${version}";
hash = "sha256-otIs2Y79KoEL4ut8YQe7Y27LpmpId8h/X8B6GIg8l+E=";
};
nativeBuildInputs = [
gfortran
pkg-config
cmake
];
buildInputs = [
blas
lapack
];
# Uses a hacky python setup run by cmake, which is hard to get running
doCheck = false;
preCheck = ''
export OMP_NUM_THREADS=2
'';
meta = with lib; {
description = "Library for Greens function based electronic structure theory calculations";
license = [ licenses.asl20 ];
homepage = "https://github.com/nomad-coe/greenX";
platforms = platforms.linux;
maintainers = [ maintainers.sheepforce ];
};
}

View File

@@ -0,0 +1,67 @@
{
fetchFromGitHub,
lib,
stdenv,
unstableGitUpdater,
cairo,
glib,
json_c,
libGL,
libepoxy,
libpng,
libxkbcommon,
meson,
ninja,
pango,
pkg-config,
scdoc,
wayland,
wayland-protocols,
wayland-scanner,
}:
stdenv.mkDerivation {
pname = "greetd-mini-wl-greeter";
version = "0-unstable-2024-12-27";
src = fetchFromGitHub {
owner = "philj56";
repo = "greetd-mini-wl-greeter";
rev = "61f25ed34a1a35a061c2f3605fc3d4b37a7d0d8e";
hash = "sha256-ifeQbzMA9O+yhLveTXpEmgG2BsSp4lxbd3yo8o69fxA=";
};
nativeBuildInputs = [
libGL
cairo
glib
json_c
libepoxy
libpng
libxkbcommon
pango
wayland
wayland-protocols
wayland-scanner
];
# https://github.com/philj56/greetd-mini-wl-greeter/issues/2
mesonBuildType = "release";
buildInputs = [
meson
ninja
pkg-config
scdoc
];
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Extremely minimal raw Wayland greeter for greetd";
license = lib.licenses.mit;
homepage = "https://github.com/philj56/greetd-mini-wl-greeter";
mainProgram = "greetd-mini-wl-greeter";
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ _0x5a4 ];
};
}

View File

@@ -0,0 +1,79 @@
{
rustPlatform,
lib,
fetchFromSourcehut,
pam,
scdoc,
installShellFiles,
nix-update-script,
# legacy passthrus
gtkgreet,
qtgreet,
regreet,
tuigreet,
wlgreet,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "greetd";
version = "0.10.3";
src = fetchFromSourcehut {
owner = "~kennylevinsen";
repo = "greetd";
rev = finalAttrs.version;
hash = "sha256-jgvYnjt7j4uubpBxrYM3YiUfF1PWuHAN1kwnv6Y+bMg=";
};
cargoHash = "sha256-JwTLZawY9+M09IDbMPoNUcNrnW1C2OVlEVn1n7ol6dY=";
nativeBuildInputs = [
scdoc
installShellFiles
];
buildInputs = [
pam
];
postInstall = ''
for f in man/*; do
scdoc < "$f" > "$(sed 's/-\([0-9]\)\.scd$/.\1/' <<< "$f")"
rm "$f"
done
installManPage man/*
'';
# Added 2025-07-23. To be deleted on 26.05
passthru =
let
warnPassthru = name: lib.warnOnInstantiate "`greetd.${name}` was renamed to `${name}`";
in
lib.mapAttrs warnPassthru {
inherit
gtkgreet
qtgreet
regreet
tuigreet
wlgreet
;
}
// {
greetd = warnPassthru "greetd" finalAttrs.finalPackage;
updateScript = nix-update-script { };
};
meta = {
description = "Minimal and flexible login manager daemon";
longDescription = ''
greetd is a minimal and flexible login manager daemon
that makes no assumptions about what you want to launch.
Comes with agreety, a simple, text-based greeter.
'';
homepage = "https://sr.ht/~kennylevinsen/greetd/";
mainProgram = "greetd";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,40 @@
{
fetchzip,
lib,
stdenv,
makeWrapper,
openjdk11,
}:
let
openjdk = openjdk11;
in
stdenv.mkDerivation rec {
pname = "gremlin-console";
version = "3.7.4";
src = fetchzip {
url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
sha256 = "sha256-Z971M4W359WKs2NjLeWej5IVHnFu5LLsffxl0jraB60=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/opt
cp -r ext lib $out/opt/
install -D bin/gremlin.sh $out/opt/bin/gremlin-console
makeWrapper $out/opt/bin/gremlin-console $out/bin/gremlin-console \
--prefix PATH ":" "${openjdk}/bin/" \
--set CLASSPATH "$out/opt/lib/"
runHook postInstall
'';
meta = with lib; {
homepage = "https://tinkerpop.apache.org/";
description = "Console of the Apache TinkerPop graph computing framework";
license = licenses.asl20;
maintainers = [ maintainers.lewo ];
platforms = platforms.all;
mainProgram = "gremlin-console";
};
}

View File

@@ -0,0 +1,43 @@
{
fetchzip,
lib,
stdenv,
makeWrapper,
openjdk11,
}:
let
openjdk = openjdk11;
in
stdenv.mkDerivation rec {
pname = "gremlin-server";
version = "3.7.0";
src = fetchzip {
url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-server-${version}-bin.zip";
sha256 = "sha256-cS7R7Raz5tkrr5DNeW7jbEYDee2OgE4htTXJRnqXlqI=";
};
nativeBuildInputs = [ makeWrapper ];
# Note you'll want to prefix any commands with LOG_DIR, PID_DIR, and RUN_DIR
# environment variables set to a writable director(y/ies).
installPhase = ''
runHook preInstall
mkdir -p $out/opt
cp -r conf ext lib scripts $out/opt/
install -D bin/gremlin-server.sh $out/opt/bin/gremlin-server
makeWrapper $out/opt/bin/gremlin-server $out/bin/gremlin-server \
--prefix PATH ":" "${openjdk}/bin/" \
--set CLASSPATH "$out/opt/lib/"
runHook postInstall
'';
meta = with lib; {
homepage = "https://tinkerpop.apache.org/";
description = "Server of the Apache TinkerPop graph computing framework";
license = licenses.asl20;
maintainers = [ maintainers.jrpotter ];
platforms = platforms.all;
mainProgram = "gremlin-server";
};
}

View File

@@ -0,0 +1,85 @@
# This file has been autogenerated with cabal2nix.
# Update via ./update.sh
{
mkDerivation,
ansi-wl-pprint,
base,
base64-bytestring,
binary,
bytestring,
containers,
directory,
edit-distance,
fetchgit,
filepath,
ghc-prim,
haskeline,
hspec,
hspec-discover,
indexed-traversable,
lib,
mtl,
prettyprinter,
process,
raw-strings-qq,
scientific,
text,
utf8-string,
vector,
}:
mkDerivation {
pname = "gren";
version = "0.6.3";
src = fetchgit {
url = "https://github.com/gren-lang/compiler.git";
sha256 = "0p93wamff539pb242lib2wyfr6alqz96rpyh9xb0a61ix0j3miiz";
rev = "54277a25d47b5c20816550ff6deab89026797526";
fetchSubmodules = true;
};
isLibrary = false;
isExecutable = true;
libraryHaskellDepends = [
ansi-wl-pprint
base
base64-bytestring
binary
bytestring
containers
directory
edit-distance
filepath
ghc-prim
indexed-traversable
mtl
prettyprinter
raw-strings-qq
scientific
text
utf8-string
vector
];
executableHaskellDepends = [
base
bytestring
containers
directory
filepath
haskeline
mtl
process
utf8-string
];
testHaskellDepends = [
base
bytestring
hspec
utf8-string
];
testToolDepends = [ hspec-discover ];
doHaddock = false;
jailbreak = true;
homepage = "https://gren-lang.org";
description = "The `gren` command line interface";
license = lib.licenses.bsd3;
mainProgram = "gren";
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
fetchFromGitHub,
makeBinaryWrapper,
nodejs,
git,
haskellPackages,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gren";
version = "0.6.3";
src = fetchFromGitHub {
owner = "gren-lang";
repo = "compiler";
tag = finalAttrs.version;
hash = "sha256-P8Y6JOgxGAVWT9DfbNLHVJnsPBcrUkHEumkU56riI10=";
};
buildInputs = [ nodejs ];
nativeBuildInputs = [ makeBinaryWrapper ];
installPhase = ''
runHook preInstall
# install the precompiled frontend into the proper location
install -Dm755 bin/compiler $out/bin/gren
wrapProgram $out/bin/gren \
--set-default GREN_BIN ${lib.getExe finalAttrs.passthru.backend} \
--suffix PATH : ${lib.makeBinPath [ git ]}
runHook postInstall
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/gren";
versionCheckProgramArg = "--version";
passthru = {
backend = haskellPackages.callPackage ./generated-backend-package.nix { };
updateScript = ./update.sh;
};
meta = {
description = "Programming language for simple and correct applications";
homepage = "https://gren-lang.org";
license = lib.licenses.bsd3;
platforms = lib.intersectLists haskellPackages.ghc.meta.platforms nodejs.meta.platforms;
mainProgram = "gren";
maintainers = with lib.maintainers; [
robinheghan
tomasajt
];
};
})

28
pkgs/by-name/gr/gren/update.sh Executable file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cabal2nix curl jq nix-update nixfmt
set -euo pipefail
# This is the directory of this update.sh script.
script_dir="$(dirname "${BASH_SOURCE[0]}")"
backend_derivation_file="${script_dir}/generated-backend-package.nix"
latest_version="$(curl --silent 'https://api.github.com/repos/gren-lang/compiler/releases/latest' | jq --raw-output '.tag_name')"
echo "Updating gren backend to version ${latest_version}."
echo "Running cabal2nix and outputting to ${backend_derivation_file}..."
cat > "${backend_derivation_file}" << EOF
# This file has been autogenerated with cabal2nix.
# Update via ./update.sh
EOF
cabal2nix 'https://github.com/gren-lang/compiler.git' --revision "${latest_version}" --jailbreak >> "${backend_derivation_file}"
nixfmt "${backend_derivation_file}"
echo 'Finished backend generation.'
echo "Updating frontend to version ${latest_version}"
nix-update gren --version "${latest_version}"

View File

@@ -0,0 +1,85 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
autoconf,
pkg-config,
libz,
bzip2,
xz,
libdeflate,
htslib,
fetchurl,
}:
let
# Grenedalf is binded to htslib 1.16 and does not link with libcurl
htslib_gr = htslib.overrideDerivation (oldAttrs: rec {
version = "1.16";
name = "${oldAttrs.pname}-nocurl-${version}";
src = fetchurl {
url = "https://github.com/samtools/htslib/releases/download/${version}/htslib-${version}.tar.bz2";
sha256 = "sha256-YGt8ev9zc0zwM+zRVvQFKfpXkvVFJJUqKJOMoIkNeSQ=";
};
configureFlags = [
"--disable-libcurl"
"--disable-plugins"
];
});
in
stdenv.mkDerivation (finalAttrs: {
pname = "grenedalf";
version = "0.6.2";
src = fetchFromGitHub {
owner = "lczech";
repo = "grenedalf";
tag = "v${finalAttrs.version}";
hash = "sha256-DJ7nZjOvYFQlN/L+S2QcMVvH/M9Dhla4VXl2nxc22m4=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
pkg-config
autoconf
];
buildInputs = [
libz
bzip2
xz
libdeflate
htslib_gr
];
cmakeFlags = [
"-DHTSLIB_DIR=${htslib_gr}"
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ../bin/grenedalf $out/bin
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/lczech/grenedalf";
description = "Collection of commands for working with population genetic data";
longDescription = ''
grenedalf is a collection of commands for working with population genetic
data, in particular from pool sequencing. Its main focus are statistical
analyses such as Tajima's D and Fst. The statistics follow the approaches
of PoPoolation and PoPoolation2, as well as poolfstat and npstat. However,
compared to those, grenedalf is significantly more scalable, more user
friendly, and offers more settings and input file formats.
'';
platforms = platforms.all;
license = licenses.gpl3Plus;
maintainers = with maintainers; [ bzizou ];
};
})

View File

@@ -0,0 +1,26 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "grepcidr";
version = "2.0";
src = fetchurl {
url = "http://www.pc-tools.net/files/unix/${pname}-${version}.tar.gz";
sha256 = "1yzpa1nigmmp4hir6377hrkpp0z6jnxgccaw2jbqgydbglvnm231";
};
installFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Filter IPv4 and IPv6 addresses matching CIDR patterns";
homepage = "https://www.pc-tools.net/unix/grepcidr/";
license = licenses.gpl3;
platforms = platforms.unix;
maintainers = [ maintainers.fadenb ];
mainProgram = "grepcidr";
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchurl,
perlPackages,
mutt,
}:
stdenv.mkDerivation {
pname = "grepm";
version = "0.6";
src = fetchurl {
url = "http://www.barsnick.net/sw/grepm";
sha256 = "0ppprhfw06779hz1b10qvq62gsw73shccsav982dyi6xmqb6jqji";
};
dontUnpack = true;
buildInputs = [
perlPackages.grepmail
mutt
];
installPhase = ''
mkdir -p $out/bin
cp -a $src $out/bin/grepm
chmod +x $out/bin/grepm
sed -i \
-e "s:^grepmail:${perlPackages.grepmail}/bin/grepmail:" \
-e "s:^\( *\)mutt:\1${mutt}/bin/mutt:" \
$out/bin/grepm
'';
meta = with lib; {
description = "Wrapper for grepmail utilizing mutt";
homepage = "https://www.barsnick.net/sw/grepm.html";
license = licenses.free;
platforms = platforms.unix;
maintainers = [ maintainers.romildo ];
mainProgram = "grepm";
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
curl,
fftw,
gmp,
gnuplot,
gtk3,
gtksourceview3,
json-glib,
lapack,
libxml2,
mpfr,
openblas,
readline,
pkg-config,
llvmPackages,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gretl";
version = "2025b";
src = fetchurl {
url = "mirror://sourceforge/gretl/gretl-${finalAttrs.version}.tar.xz";
hash = "sha256-DW0QXWbx0nMWTfjxO15ZGR/DsvFM7eee0DDsqrm5vHM=";
};
buildInputs = [
curl
fftw
gmp
gnuplot
gtk3
gtksourceview3
json-glib
lapack
libxml2
mpfr
openblas
readline
]
++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
nativeBuildInputs = [
pkg-config
];
env.NIX_LDFLAGS = lib.optionalString stdenv.cc.isClang "-lomp";
enableParallelBuilding = true;
# Missing install depends:
# cp: cannot stat '...-gretl-2022c/share/gretl/data/plotbars': Not a directory
# make[1]: *** [Makefile:73: install_datafiles] Error 1
enableParallelInstalling = false;
meta = {
description = "Software package for econometric analysis";
homepage = "https://gretl.sourceforge.net";
license = lib.licenses.gpl3;
longDescription = ''
gretl is a cross-platform software package for econometric analysis,
written in the C programming language.
'';
maintainers = [ ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "grex";
version = "1.4.5";
src = fetchFromGitHub {
owner = "pemistahl";
repo = "grex";
rev = "v${version}";
hash = "sha256-Ut2H2H66XN1+wHpYivnuhil21lbd7bwIcIcMyIimdis=";
};
cargoHash = "sha256-OsK6X7qwMMQ1FK3JE98J2u6pn6AixE8izFmxUVDs5GM=";
doInstallCheck = true;
installCheckPhase = ''
$out/bin/grex --help > /dev/null
'';
meta = {
description = "Command-line tool for generating regular expressions from user-provided test cases";
homepage = "https://github.com/pemistahl/grex";
changelog = "https://github.com/pemistahl/grex/releases/tag/v${version}";
license = lib.licenses.asl20;
mainProgram = "grex";
maintainers = with lib.maintainers; [
SuperSandro2000
mfrw
];
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
pkg-config,
sassc,
gdk-pixbuf,
librsvg,
gtk-engine-murrine,
gitUpdater,
}:
stdenv.mkDerivation rec {
pname = "greybird";
version = "3.23.4";
src = fetchFromGitHub {
owner = "shimmerproject";
repo = "greybird";
rev = "v${version}";
hash = "sha256-De8y+LRQ26UKrUECLCcbCg7p9Z+aRssQ/7YzegAUPw4=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
sassc
];
buildInputs = [
gdk-pixbuf
librsvg
];
propagatedUserEnvPkgs = [
gtk-engine-murrine
];
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = with lib; {
description = "Grey and blue theme from the Shimmer Project for GTK-based environments";
homepage = "https://github.com/shimmerproject/Greybird";
license = [ licenses.gpl2Plus ]; # or alternatively: cc-by-nc-sa-30 or later
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
}:
rustPlatform.buildRustPackage {
pname = "gridlock";
version = "0-unstable-2023-08-29";
outputs = [
"out"
"nyarr"
];
src = fetchFromGitHub {
owner = "lf-";
repo = "gridlock";
rev = "a98abfa554e5f8e2b7242662c0c714b7f1d7ec29";
hash = "sha256-I4NGfgNX79ZhWXDeUDJyDzP2GxcNhHhazVmmmPlz5js=";
};
cargoHash = "sha256-CflDi1sjPBX+FOj74DWYKcg0O8Q7bnCFhzEnCrRi0g8=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
postInstall = ''
moveToOutput bin/nyarr $nyarr
'';
meta = with lib; {
description = "Nix compatible lockfile manager, without Nix";
homepage = "https://github.com/lf-/gridlock";
license = licenses.mit;
maintainers = with maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitLab,
nix-update-script,
nwjs,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "gridtracker";
version = "1.24.0922";
src = fetchFromGitLab {
owner = "gridtracker.org";
repo = "gridtracker";
rev = "v${version}";
hash = "sha256-6WgP13JVOzYnYtCDH3qCQXT70X9j4yqlUb18FFf1aSY=";
};
nativeBuildInputs = [ wrapGAppsHook3 ];
postPatch = ''
substituteInPlace Makefile \
--replace '$(DESTDIR)/usr' '$(DESTDIR)/'
substituteInPlace gridtracker.sh \
--replace "exec nw" "exec ${nwjs}/bin/nw" \
--replace "/usr/share/gridtracker" "$out/share/gridtracker"
substituteInPlace gridtracker.desktop \
--replace "/usr/share/gridtracker/gridview.png" "$out/share/gridtracker/gridview.png"
'';
makeFlags = [
"DESTDIR=$(out)"
"NO_DIST_INSTALL=1"
];
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Amateur radio companion to WSJT-X or JTDX";
mainProgram = "gridtracker";
longDescription = ''
GridTracker listens to traffic from WSJT-X/JTDX, displays it on a map,
and has a sophisticated alerting and filtering system for finding and
working interesting stations. It also will upload QSO records to multiple
logging frameworks including Logbook of the World.
'';
homepage = "https://gridtracker.org";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ melling ];
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,119 @@
{
lib,
stdenv,
copyDesktopItems,
buildNpmPackage,
electron,
fetchFromGitLab,
makeBinaryWrapper,
makeDesktopItem,
}:
let
version = "2.250914.1";
in
buildNpmPackage (finalAttrs: {
pname = "gridtracker2";
inherit version;
src = fetchFromGitLab {
owner = "gridtracker.org";
repo = "gridtracker2";
tag = "v${version}";
hash = "sha256-ME68kGRlIRPs5tUOGb3g2CXJKC52QuMuTMc1ctAMzlk=";
};
npmDepsHash = "sha256-MUXwJPo/A0gxtUbM3MOWfMcspM1losuDhc5XTc2oqCo=";
nativeBuildInputs = [
makeBinaryWrapper
copyDesktopItems
];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = true;
makeCacheWritable = true;
desktopItems = [
(makeDesktopItem {
name = "GridTracker2";
desktopName = "GridTracker2";
exec = "gridtracker2 %U";
terminal = false;
type = "Application";
icon = "gridtracker2";
startupWMClass = "GridTracker2";
comment = "A warehouse of amateur radio information";
categories = [
"HamRadio"
"Network"
];
})
];
postPatch = ''
install -Dvm644 ${./package-lock.json} package-lock.json
'';
buildPhase = ''
runHook preBuild
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# electronDist needs to be modifiable on Darwin
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
# Disable code signing during build on macOS.
# https://github.com/electron-userland/electron-builder/blob/fa6fc16/docs/code-signing.md#how-to-disable-code-signing-during-the-build-process-on-macos
export CSC_IDENTITY_AUTO_DISCOVERY=false
npm exec electron-builder -- \
--dir \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version}
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
npm exec electron-builder -- \
--dir \
-c.electronDist=${electron.dist} \
-c.electronVersion=${electron.version}
''
+ ''
runHook postBuild
'';
installPhase = ''
runHook preInstall
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
install -Dvm644 -t "$out/share/gridtracker2/resources" \
./dist/linux*/resources/*
install -Dvm644 -t "$out/share/gridtracker2/locales" \
./dist/linux*/locales/*
install -Dvm644 ./resources/icon.png \
"$out/share/pixmaps/gridtracker2.png"
makeWrapper ${lib.getExe electron} $out/bin/gridtracker2 \
--add-flags $out/share/gridtracker2/resources/app.asar \
--add-flags "--no-sandbox --disable-gpu-sandbox" \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--inherit-argv0
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/Applications $out/bin
cp -r dist/mac*/GridTracker2.app $out/Applications
ln -s $out/Applications/GridTracker2.app/Contents/MacOS/GridTracker2 $out/bin/gridtracker2
''
+ ''
runHook postInstall
'';
meta = {
description = "Warehouse of amateur radio information";
homepage = "https://gridtracker.org/";
license = lib.licenses.bsd3;
platforms = electron.meta.platforms;
maintainers = with lib.maintainers; [ Cryolitia ];
mainProgram = "gridtracker2";
};
})

View File

@@ -0,0 +1,34 @@
diff --git a/src/rig-selector.c b/src/rig-selector.c
index 425d41a..e040c0e 100644
--- a/src/rig-selector.c
+++ b/src/rig-selector.c
@@ -46,7 +46,7 @@ static void add (GtkWidget *, gpointer);
static void delete (GtkWidget *, gpointer);
static void edit (GtkWidget *, gpointer);
static void cancel (GtkWidget *, gpointer);
-static void connect (GtkWidget *, gpointer);
+static void connectrig (GtkWidget *, gpointer);
static void selection_changed (GtkTreeSelection *sel, gpointer data);
static void render_civ (GtkTreeViewColumn *col,
@@ -191,7 +191,7 @@ rig_selector_execute ()
g_signal_connect (G_OBJECT (cancbut), "clicked",
G_CALLBACK (cancel), window);
g_signal_connect (G_OBJECT (conbut), "clicked",
- G_CALLBACK (connect), window);
+ G_CALLBACK (connectrig), window);
g_signal_connect (G_OBJECT (delbut), "clicked",
G_CALLBACK (delete), NULL);
g_signal_connect (G_OBJECT (newbut), "clicked",
@@ -439,7 +439,7 @@ static void cancel (GtkWidget *button, gpointer window)
* simply destroys the rig selector window and whereby control is returned
* to the main() function.
*/
-static void connect (GtkWidget *button, gpointer window)
+static void connectrig (GtkWidget *button, gpointer window)
{
--
2.47.0

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
wrapGAppsHook3,
gtk2,
hamlib_4,
}:
stdenv.mkDerivation rec {
pname = "grig";
version = "0.9.0";
src = fetchFromGitHub {
owner = "fillods";
repo = "grig";
rev = "GRIG-${lib.replaceStrings [ "." ] [ "_" ] version}";
sha256 = "sha256-OgIgHW9NMW/xSSti3naIR8AQWUtNSv5bYdOcObStBlM=";
};
patches = [
# https://github.com/fillods/grig/issues/22
./0001-Fix-grig-for-hamlib-4.6.2.patch
];
nativeBuildInputs = [
autoreconfHook
pkg-config
wrapGAppsHook3
];
buildInputs = [
hamlib_4
gtk2
];
meta = with lib; {
description = "Simple Ham Radio control (CAT) program based on Hamlib";
mainProgram = "grig";
longDescription = ''
Grig is a graphical user interface for the Ham Radio Control Libraries.
It is intended to be simple and generic, presenting the user with the
same interface regardless of which radio they use.
'';
homepage = "https://groundstation.sourceforge.net/grig/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [
melling
mafo
];
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/chromaprint/grl-chromaprint.c b/src/chromaprint/grl-chromaprint.c
index 5a3598b..8979291 100644
--- a/src/chromaprint/grl-chromaprint.c
+++ b/src/chromaprint/grl-chromaprint.c
@@ -111,6 +111,8 @@
gst_init (NULL, NULL);
+ @load_plugins@
+
source = grl_chromaprint_source_new ();
grl_registry_register_source (registry,
plugin,

View File

@@ -0,0 +1,119 @@
{
lib,
stdenv,
fetchurl,
replaceVars,
meson,
ninja,
pkg-config,
gettext,
gperf,
glib,
localsearch,
sqlite,
libarchive,
libdmapsharing,
libsoup_3,
librest_1_0,
gnome,
libxml2,
lua5_4,
liboauth,
libmediaart,
grilo,
gst_all_1,
gnome-online-accounts,
gmime,
gom,
json-glib,
avahi,
tinysparql,
dleyna,
itstool,
totem-pl-parser,
}:
stdenv.mkDerivation rec {
pname = "grilo-plugins";
version = "0.3.18";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "jjznTucXw8Mi0MsPjfJrsJFAKKXQFuKAVf+0nMmkbF4=";
};
patches = [
# grl-chromaprint requires the following GStreamer elements:
# * fakesink (gstreamer)
# * playbin (gst-plugins-base)
# * chromaprint (gst-plugins-bad)
(replaceVars ./chromaprint-gst-plugins.patch {
load_plugins =
lib.concatMapStrings
(plugin: ''gst_registry_scan_path(gst_registry_get(), "${lib.getLib plugin}/lib/gstreamer-1.0");'')
(
with gst_all_1;
[
gstreamer
gst-plugins-base
gst-plugins-bad
]
);
})
];
strictDeps = true;
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
itstool
gperf # for lua-factory
glib # glib-compile-resources
localsearch
];
buildInputs = [
grilo
libxml2
# libgdata
lua5_4
liboauth
sqlite
gnome-online-accounts
totem-pl-parser
libarchive
libdmapsharing
libsoup_3
librest_1_0
gmime
gom
json-glib
avahi
libmediaart
tinysparql
dleyna
gst_all_1.gstreamer
];
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/GNOME/grilo-plugins";
description = "Collection of plugins for the Grilo framework";
teams = [ teams.gnome ];
license = licenses.lgpl21Plus;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,87 @@
{
stdenv,
lib,
fetchurl,
meson,
mesonEmulatorHook,
ninja,
pkg-config,
python3,
gettext,
vala,
glib,
liboauth,
gtk3,
gtk-doc,
docbook-xsl-nons,
docbook_xml_dtd_43,
libxml2,
gnome,
gobject-introspection,
libsoup_3,
totem-pl-parser,
}:
stdenv.mkDerivation rec {
pname = "grilo";
version = "0.3.19"; # if you change minor, also change ./setup-hook.sh
outputs = [
"out"
"dev"
"man"
"devdoc"
];
outputBin = "dev";
setupHook = ./setup-hook.sh;
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "CGnIHRmrE5xmfXlWfBTdy2y1y/wBCNBMreKH6ylTZwY=";
};
mesonFlags = [
"-Denable-gtk-doc=true"
];
nativeBuildInputs = [
meson
ninja
pkg-config
python3
gettext
gobject-introspection
vala
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [
glib
liboauth
gtk3
libxml2
libsoup_3
totem-pl-parser
];
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/GNOME/grilo";
description = "Framework that provides access to various sources of multimedia content, using a pluggable system";
teams = [ teams.gnome ];
license = licenses.lgpl2Plus;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,7 @@
make_grilo_find_plugins() {
if [ -d "$1"/lib/grilo-0.3 ]; then
addToSearchPath GRL_PLUGIN_PATH "$1/lib/grilo-0.3"
fi
}
addEnvHooks "$hostOffset" make_grilo_find_plugins

View File

@@ -0,0 +1,62 @@
{
lib,
fetchFromGitLab,
libjpeg,
libpng,
meson,
ninja,
pixman,
pkg-config,
scdoc,
stdenv,
wayland,
wayland-protocols,
wayland-scanner,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "grim";
version = "1.5.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "emersion";
repo = "grim";
rev = "v${finalAttrs.version}";
hash = "sha256-oPo6zrS3gCnviIK0+gPvtal+6c7fNFWtXnAA0YfaS+U=";
};
depsBuildBuild = [
# To find wayland-scanner
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
scdoc
wayland-scanner
];
buildInputs = [
pixman
libpng
libjpeg
wayland
wayland-protocols
];
mesonFlags = [ (lib.mesonBool "werror" false) ];
strictDeps = true;
meta = {
homepage = "https://gitlab.freedesktop.org/emersion/grim";
description = "Grab images from a Wayland compositor";
license = lib.licenses.mit;
mainProgram = "grim";
maintainers = with lib.maintainers; [ khaneliman ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,72 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
makeWrapper,
scdoc,
coreutils,
grim,
hyprland,
hyprpicker,
jq,
libnotify,
slurp,
wl-clipboard,
unixtools,
bash,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "grimblast";
version = "0.1-unstable-2025-10-04";
src = fetchFromGitHub {
owner = "hyprwm";
repo = "contrib";
rev = "32e1a75b65553daefb419f0906ce19e04815aa3a";
hash = "sha256-PzgQJydp+RlKvwDi807pXPlURdIAVqLppZDga3DwPqg=";
};
strictDeps = true;
nativeBuildInputs = [
makeWrapper
scdoc
];
buildInputs = [ bash ];
makeFlags = [
"PREFIX=$(out)"
];
sourceRoot = "${finalAttrs.src.name}/grimblast";
postInstall = ''
wrapProgram $out/bin/grimblast --prefix PATH ':' \
"${
lib.makeBinPath [
coreutils
grim
hyprland
hyprpicker
jq
libnotify
slurp
wl-clipboard
unixtools.getopt
]
}"
'';
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = with lib; {
description = "Helper for screenshots within Hyprland, based on grimshot";
license = licenses.mit;
platforms = platforms.unix;
teams = [ lib.teams.hyprland ];
mainProgram = "grimblast";
};
})

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