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

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

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchurl,
gmp,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "nuXmv";
version = "2.0.0";
src = fetchurl {
url = "https://es-static.fbk.eu/tools/nuxmv/downloads/nuXmv-${version}-${
if stdenv.hostPlatform.isDarwin then "macosx64" else "linux64"
}.tar.gz";
sha256 =
if stdenv.hostPlatform.isDarwin then
"sha256-48I+FhJUUam1nMCMMM47CwGO82BYsNz0eHDHXBfqO2E="
else
"sha256-Gf+QgAjTrysZj7qTtt1wcQPganDtO0YtRY4ykhLPzVo=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ gmp ];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin ./bin/nuXmv
runHook postInstall
'';
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
wrapProgram $out/bin/nuXmv --prefix DYLD_LIBRARY_PATH : ${gmp}/lib
'';
meta = with lib; {
description = "Symbolic model checker for analysis of finite and infinite state systems";
homepage = "https://nuxmv.fbk.eu/pmwiki.php";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ siraben ];
platforms = [
"x86_64-linux"
"x86_64-darwin"
];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
unstableGitUpdater,
}:
stdenvNoCC.mkDerivation {
pname = "nu_scripts";
version = "0-unstable-2025-09-19";
src = fetchFromGitHub {
owner = "nushell";
repo = "nu_scripts";
rev = "7ea6780a4137bef1d683fb16989c19a945891b54";
hash = "sha256-Bof9bsQZnjtc9MLcuTIjdtsX/lbWGKc1u9HgGZp8uD8=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/nu_scripts
mv ./* $out/share/nu_scripts
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Place to share Nushell scripts with each other";
homepage = "https://github.com/nushell/nu_scripts";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.CardboardTurkey ];
};
}

View File

@@ -0,0 +1,39 @@
{
appimageTools,
lib,
fetchurl,
}:
let
pname = "nuclear";
version = "0.6.48";
src = fetchurl {
# Nuclear currently only publishes AppImage releases for x86_64, which is hardcoded in
# the package name. We also hardcode the host arch in the release name, but should upstream
# provide more arches, we should use stdenv.hostPlatform to determine the arch and choose
# source URL accordingly.
url = "https://github.com/nukeop/nuclear/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage";
hash = "sha256-k3qGWPn+O4kazsrrZAYHIvSrrix9LNnnJgZGJqlJbJE=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
substituteInPlace $out/share/applications/${pname}.desktop \
--replace-fail 'Exec=AppRun' 'Exec=${pname}'
cp -r ${appimageContents}/usr/share/icons $out/share
'';
meta = {
description = "Streaming music player that finds free music for you";
homepage = "https://nuclear.js.org/";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.NotAShelf ];
platforms = [ "x86_64-linux" ];
mainProgram = "nuclear";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation rec {
pname = "nuclei-templates";
version = "10.3.0";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "nuclei-templates";
tag = "v${version}";
hash = "sha256-WzPH3uyRAseN51gpmezfD0Mcbjh2K2mSkRbo3LFShG4=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/nuclei-templates
cp -R cloud code dast dns file headless helpers http javascript network profiles ssl \
$out/share/nuclei-templates/
runHook postInstall
'';
meta = {
description = "Templates for the nuclei engine to find security vulnerabilities";
homepage = "https://github.com/projectdiscovery/nuclei-templates";
changelog = "https://github.com/projectdiscovery/nuclei-templates/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule rec {
pname = "nuclei";
version = "3.4.10";
src = fetchFromGitHub {
owner = "projectdiscovery";
repo = "nuclei";
tag = "v${version}";
hash = "sha256-lFyp5VXEX0nK83p2LmWdhNoQKvNtgln1GG3OpZEXaL8=";
};
vendorHash = "sha256-cDK0xP3vHRVBeFK2dKDnaCNge7EBKkMcrYen12XI7G0=";
proxyVendor = true; # hash mismatch between Linux and Darwin
subPackages = [ "cmd/nuclei/" ];
nativeInstallCheckInputs = [ versionCheckHook ];
ldflags = [
"-w"
"-s"
];
# Test files are not part of the release tarball
doCheck = false;
doInstallCheck = true;
versionCheckProgramArg = "-version";
meta = {
description = "Tool for configurable targeted scanning";
longDescription = ''
Nuclei is used to send requests across targets based on a template
leading to zero false positives and providing effective scanning
for known paths. Main use cases for nuclei are during initial
reconnaissance phase to quickly check for low hanging fruits or
CVEs across targets that are known and easily detectable.
'';
homepage = "https://github.com/projectdiscovery/nuclei";
changelog = "https://github.com/projectdiscovery/nuclei/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
fab
Misaka13514
];
mainProgram = "nuclei";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "nucleiparser";
version = "0.2.1";
pyproject = true;
src = fetchFromGitHub {
owner = "sinkmanu";
repo = "nucleiparser";
tag = version;
hash = "sha256-/SLaRuO06rF7aLV7zY7tfIxkJRzsx+/Z+mc562RX2OQ=";
};
nativeBuildInputs = with python3.pkgs; [
setuptools
];
propagatedBuildInputs = with python3.pkgs; [
prettytable
];
pythonImportsCheck = [
"nucleiparser"
];
meta = {
description = "Nuclei output parser for CLI";
homepage = "https://github.com/sinkmanu/nucleiparser";
changelog = "https://github.com/Sinkmanu/nucleiparser/releases/tag/${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "nparser";
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
python3Packages,
fetchFromGitea,
ninja,
meson,
pkg-config,
wrapGAppsHook4,
glib,
desktop-file-utils,
appstream-glib,
blueprint-compiler,
libadwaita,
nix-update-script,
}:
let
version = "1";
in
python3Packages.buildPythonApplication {
pname = "nucleus";
inherit version;
pyproject = false;
src = fetchFromGitea {
domain = "codeberg.org";
owner = "lo-vely";
repo = "nucleus";
tag = "v${version}";
hash = "sha256-8y3sbtfq4hZuEwReduIkud91SOj9XrURrZRUs2M74mQ=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
wrapGAppsHook4
glib
desktop-file-utils
appstream-glib
blueprint-compiler
];
dependencies = with python3Packages; [
pygobject3
];
buildInputs = [
libadwaita
];
dontWrapGApps = true;
makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Unofficial GNOME Periodic Table";
homepage = "https://codeberg.org/lo-vely/nucleus";
changelog = "https://codeberg.org/lo-vely/nucleus/releases/tag/v${version}";
license = lib.licenses.gpl3Plus;
mainProgram = "nucleus";
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.awwpotato ];
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
autoreconfHook,
pkg-config,
gettext,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "nudoku";
version = "5.0.0";
src = fetchFromGitHub {
owner = "jubalh";
repo = "nudoku";
rev = version;
hash = "sha256-aOtP23kNd15DdV6on7o80QnEf0CiUBubHfFE8M1mhg0=";
};
patches = [
(fetchpatch2 {
url = "https://github.com/jubalh/nudoku/commit/c5fd9156d2d1f2c95a5d87b07adeaee90a7f911d.patch?full_index=1";
hash = "sha256-nvLKAUCDY3fQWjybVX8DaMBdk5CaegRRb/ENTI9kJ9k=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
gettext
];
buildInputs = [ ncurses ];
meta = with lib; {
description = "Ncurses based sudoku game";
mainProgram = "nudoku";
homepage = "https://jubalh.github.io/nudoku";
license = licenses.gpl3Only;
sourceProvenance = with sourceTypes; [ fromSource ];
platforms = platforms.all;
maintainers = with maintainers; [ weathercold ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
fetchFromGitHub,
nix-update-script,
rustPlatform,
stdenv,
}:
rustPlatform.buildRustPackage {
pname = "nufmt";
version = "0-unstable-2025-06-19";
src = fetchFromGitHub {
owner = "nushell";
repo = "nufmt";
rev = "35962223fbd4c1a924b4ccfb8c7ad81fe2863b86";
hash = "sha256-2WgqKQBZRMqUyWq0qm+d8TUT/iAQ1LZjhllBKqimp+Q=";
};
nativeBuildInputs = [
rustPlatform.bindgenHook
];
cargoHash = "sha256-KDXC2/1GcJL6qH+L/FzzQCA7kJigtKOfxVDLv5qXYao=";
# NOTE: Patch follows similar intention upstream https://github.com/nushell/nufmt/commit/35962223fbd4c1a924b4ccfb8c7ad81fe2863b86
postPatch = ''
substituteInPlace tests/main.rs --replace-fail \
'const TEST_BINARY: &str = "target/debug/nufmt";' \
'const TEST_BINARY: &str = "target/${stdenv.hostPlatform.rust.rustcTarget}/release/nufmt";'
'';
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
meta = {
description = "Nushell formatter";
homepage = "https://github.com/nushell/nufmt";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
khaneliman
];
mainProgram = "nufmt";
};
}

View File

@@ -0,0 +1,120 @@
#!@runtimeShell@
# shellcheck shell=bash
set -euo pipefail
shopt -s nullglob
export SSL_CERT_FILE=@cacert@/etc/ssl/certs/ca-bundle.crt
export PATH="@binPath@:$PATH"
# used for glob ordering of package names
export LC_ALL=C
if [ $# -eq 0 ]; then
>&2 echo "Usage: $0 <packages directory> [path to a file with a list of excluded packages] > deps.json"
exit 1
fi
pkgs=$1
tmp=$(realpath "$(mktemp -td nuget-to-json.XXXXXX)")
trap 'rm -r "$tmp"' EXIT
excluded_list=$(realpath "${2:-/dev/null}")
export DOTNET_NOLOGO=1
export DOTNET_CLI_TELEMETRY_OPTOUT=1
mapfile -t sources < <(dotnet nuget list source --format short | awk '/^E / { print $2 }')
wait "$!"
declare -a remote_sources
declare -A base_addresses
for index in "${sources[@]}"; do
if [[ -d "$index" ]]; then
continue
fi
remote_sources+=("$index")
base_address=$(
curl --compressed --netrc-optional -fsSL "$index" |
jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"'
)
if [[ ! "$base_address" == */ ]]; then
base_address="$base_address/"
fi
base_addresses[$index]="$base_address"
done
(
echo '['
first=true
cd "$pkgs"
for package in *; do
[[ -d "$package" ]] || continue
cd "$package"
for version in *; do
id=$(xmlstarlet sel -t -v /_:package/_:metadata/_:id "$version"/*.nuspec)
if grep -qxF "$id.$version.nupkg" "$excluded_list"; then
continue
fi
# packages in the nix store should have an empty metadata file
# packages installed with 'dotnet tool' may be missing 'source'
used_source="$(jq -r 'if has("source") then .source elif has("contentHash") then "__unknown" else "" end' "$version"/.nupkg.metadata)"
found=false
if [[ -z "$used_source" || -d "$used_source" ]]; then
continue
fi
for source in "${remote_sources[@]}"; do
url="${base_addresses[$source]}$package/$version/$package.$version.nupkg"
if [[ "$source" == "$used_source" ]]; then
hash="$(nix-hash --type sha256 --flat --sri "$version/$package.$version".nupkg)"
found=true
break
else
if hash=$(nix-prefetch-url "$url" 2>"$tmp"/error); then
hash="$(nix-hash --to-sri --type sha256 "$hash")"
# If multiple remote sources are enabled, nuget will try them all
# concurrently and use the one that responds first. We always use the
# first source that has the package.
echo "$package $version is available at $url, but was restored from $used_source" 1>&2
found=true
break
else
if ! grep -q 'HTTP error 404' "$tmp/error"; then
cat "$tmp/error" 1>&2
exit 1
fi
fi
fi
done
if [[ $found = false ]]; then
echo "couldn't find $package $version" >&2
exit 1
fi
if [[ $first = false ]]; then
echo ' , {'
else
echo ' {'
fi
echo " \"pname\": \"$id\""
echo " , \"version\": \"$version\""
echo " , \"hash\": \"$hash\""
if [[ "$source" != https://api.nuget.org/v3/index.json ]]; then
echo " , \"url\": \"$url\""
fi
echo ' }'
first=false
done
cd ..
done
echo ']'
) | jq .

View File

@@ -0,0 +1,39 @@
{
lib,
runtimeShell,
replaceVarsWith,
nix,
coreutils,
jq,
xmlstarlet,
curl,
gnugrep,
gawk,
cacert,
}:
replaceVarsWith {
name = "nuget-to-json";
dir = "bin";
src = ./nuget-to-json.sh;
isExecutable = true;
replacements = {
inherit runtimeShell cacert;
binPath = lib.makeBinPath [
nix
coreutils
jq
xmlstarlet
curl
gnugrep
gawk
];
};
meta = {
description = "Convert a nuget packages directory to a lockfile for buildDotnetModule";
mainProgram = "nuget-to-json";
};
}

View File

@@ -0,0 +1,57 @@
{
stdenv,
fetchFromGitHub,
makeWrapper,
mono,
lib,
}:
stdenv.mkDerivation (attrs: {
pname = "Nuget";
version = "6.6.1.2";
src = fetchFromGitHub {
owner = "mono";
repo = "linux-packaging-nuget";
rev = "upstream/${attrs.version}.bin";
hash = "sha256-9/dSeVshHbpYIgGE/8OzrB4towrWVB3UxDi8Esmbu7Y=";
};
nativeBuildInputs = [
makeWrapper
];
installPhase = ''
runHook preInstall
mkdir -p $out/lib/${attrs.pname}
cp -r . $out/lib/${attrs.pname}/
mkdir -p $out/bin
makeWrapper \
"${mono}/bin/mono" \
"$out/bin/nuget" \
--add-flags "$out/lib/${attrs.pname}/nuget.exe"
runHook postInstall
'';
meta = with lib; {
description = "Package manager for the .NET platform";
mainProgram = "nuget";
homepage = "https://www.mono-project.com/";
longDescription = ''
NuGet is the package manager for the .NET platform.
This derivation bundles the Mono NuGet CLI, which is mostly used by
older projects based on .NET Framework.
Newer .NET projects can use the dotnet CLI, which has most of this
packages functionality built-in.
'';
# https://learn.microsoft.com/en-us/nuget/resources/nuget-faq#what-is-the-license-for-nuget-exe-
license = licenses.mit;
sourceProvenance = [ sourceTypes.binaryBytecode ];
maintainers = [ maintainers.mdarocha ];
inherit (mono.meta) platforms;
};
})

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
python3,
SDL2,
SDL2_net,
alsa-lib,
fluidsynth,
libebur128,
libsndfile,
libxmp,
openal,
yyjson,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nugget-doom";
version = "4.4.0";
src = fetchFromGitHub {
owner = "MrAlaux";
repo = "Nugget-Doom";
tag = "nugget-doom-${finalAttrs.version}";
hash = "sha256-Egk4Tx0qFC++r/Bubr1N+lxAfjyDkRmrZKwf09ZD+Kk=";
};
nativeBuildInputs = [
cmake
python3
];
buildInputs = [
SDL2
SDL2_net
alsa-lib
fluidsynth
libebur128
libsndfile
libxmp
openal
yyjson
];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"nugget-doom-(.*)"
];
};
meta = {
description = "Doom source port forked from Woof! with additional features";
homepage = "https://github.com/MrAlaux/Nugget-Doom";
changelog = "https://github.com/MrAlaux/Nugget-Doom/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ bandithedoge ];
mainProgram = "nugget-doom";
platforms = with lib.platforms; linux ++ darwin ++ windows;
};
})

View File

@@ -0,0 +1,83 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
gitUpdater,
cmake,
SDL2,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nuked-md";
version = "1.2";
src = fetchFromGitHub {
owner = "nukeykt";
repo = "Nuked-MD";
rev = "v${finalAttrs.version}";
hash = "sha256-Pe+TSu9FBUhxtACq+6jMbrUxiwKLOJgQbEcmUrcrjMs=";
};
patches = [
# Remove when version > 1.2
(fetchpatch {
name = "0001-nuked-md-Fix-missing-string-h-include.patch";
url = "https://github.com/nukeykt/Nuked-MD/commit/b875cd79104217af581131b22f4111409273617a.patch";
hash = "sha256-Mx3jmrlBbxdz3ZBr4XhmBk1S04xB0uaxzPXpXSlipV4=";
})
];
# Interesting detail about our SDL2 packaging:
# Because we build it with the configure script instead of CMake, we ship sdl2-config.cmake instead of SDL2Config.cmake
# The former doesn't set SDL2_FOUND while the latter does (like CMake config scripts should), which causes this issue:
#
# CMake Error at CMakeLists.txt:5 (find_package):
# Found package configuration file:
#
# <SDL2.dev>/lib/cmake/SDL2/sdl2-config.cmake
#
# but it set SDL2_FOUND to FALSE so package "SDL2" is considered to be NOT
# FOUND.
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace 'SDL2 REQUIRED' 'SDL2'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
];
buildInputs = [
SDL2
];
installPhase = ''
runHook preInstall
install -Dm755 Nuked-MD $out/bin/Nuked-MD
runHook postInstall
'';
passthru = {
updateScript = gitUpdater {
rev-prefix = "v";
};
};
meta = with lib; {
description = "Cycle accurate Mega Drive emulator";
longDescription = ''
Cycle accurate Mega Drive core. The goal of this project is to emulate Sega Mega Drive chipset as accurately as
possible using decapped chips photos.
'';
homepage = "https://github.com/nukeykt/Nuked-MD";
license = licenses.gpl2Plus;
mainProgram = "Nuked-MD";
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "nullidentdmod";
version = "1.3";
src = fetchFromGitHub {
owner = "Ranthrall";
repo = "nullidentdmod";
rev = "v${version}";
sha256 = "1ahwm5pyidc6m07rh5ls2lc25kafrj233nnbcybprgl7bqdq1b0k";
};
installPhase = ''
mkdir -p $out/bin
install -Dm755 nullidentdmod $out/bin
'';
meta = with lib; {
description = "Simple identd that just replies with a random string or customized userid";
mainProgram = "nullidentdmod";
license = licenses.gpl2Plus;
homepage = "https://github.com/Ranthrall/nullidentdmod";
maintainers = with maintainers; [ das_j ];
platforms = platforms.linux; # Must be run by systemd
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
which,
pkg-config,
zip,
imagemagick,
qt5,
taglib,
gst_all_1,
}:
stdenv.mkDerivation rec {
pname = "nulloy";
version = "0.9.9";
src = fetchFromGitHub {
owner = "nulloy";
repo = "nulloy";
rev = version;
hash = "sha256-vFg789vBV7ks+4YiWWl3u0/kQjzpAiX8dMfXU0hynDM=";
};
nativeBuildInputs = [
which # used by configure script
pkg-config
zip
imagemagick
qt5.qttools
qt5.wrapQtAppsHook
];
buildInputs = [
qt5.qtscript
qt5.qtsvg
taglib
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
]);
prefixKey = "--prefix ";
enableParallelBuilding = true;
# FIXME: not added by gstreamer setup hook by default
preFixup = ''
qtWrapperArgs+=(
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
)
'';
meta = with lib; {
description = "Music player with a waveform progress bar";
homepage = "https://nulloy.com";
changelog = "https://github.com/nulloy/nulloy/blob/${src.rev}/ChangeLog";
license = licenses.gpl3Only;
mainProgram = "nulloy";
maintainers = with maintainers; [ aleksana ];
platforms = platforms.all;
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchurl,
perl,
}:
stdenv.mkDerivation rec {
pname = "num-utils";
version = "0.5";
src = fetchurl {
url = "https://suso.suso.org/programs/num-utils/downloads/num-utils-${version}.tar.gz";
sha256 = "0kn6yskjww2agcqvas5l2xp55mp4njdxqkdicchlji3qzih2fn83";
};
buildInputs = [ perl ];
patchPhase = ''
substituteInPlace Makefile --replace "-o 0 -g 0" "" --replace "\$(RPMDIR)" ""
'';
makeFlags = [
"TOPDIR=${placeholder "out"}"
"PERL=${perl}/bin/perl"
];
meta = with lib; {
description = "Programs for dealing with numbers from the command line";
homepage = "https://suso.suso.org/xulu/Num-utils";
license = licenses.gpl2Plus;
platforms = platforms.all;
maintainers = [ maintainers.catern ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "numactl";
version = "2.0.18";
src = fetchFromGitHub {
owner = "numactl";
repo = "numactl";
rev = "v${version}";
hash = "sha256-ry29RUNa0Hv5gIhy2RTVT94mHhgfdIwb5aqjBycxxj0=";
};
patches = [
# Fix for memory corruption in set_nodemask_size
(fetchpatch {
url = "https://github.com/numactl/numactl/commit/f9deba0c8404529772468d6dd01389f7dbfa5ba9.patch";
hash = "sha256-TmWfD99YaSIHA5PSsWHE91GSsdsVgVU+qIow7LOwOGw=";
})
];
outputs = [
"out"
"dev"
"man"
];
nativeBuildInputs = [ autoreconfHook ];
postPatch = ''
patchShebangs test
'';
# You probably shouldn't ever run these! They will reconfigure Linux
# NUMA settings, which on my build machine makes the rest of package
# building ~5% slower until reboot. Ugh!
doCheck = false; # never ever!
meta = with lib; {
description = "Library and tools for non-uniform memory access (NUMA) machines";
homepage = "https://github.com/numactl/numactl";
license = with licenses; [
gpl2Only
lgpl21
]; # libnuma is lgpl21
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchgit,
unstableGitUpdater,
writeShellScript,
}:
stdenv.mkDerivation {
pname = "numad";
version = "0.5-unstable-2023-09-06";
src = fetchgit {
url = "https://pagure.io/numad.git";
rev = "3399d89305b6560e27e70aff4ad9fb403dedf947";
hash = "sha256-USEffVcakaAbilqijJmpro92ujvxbglcXxyBlntMxaI=";
};
postPatch = ''
substituteInPlace Makefile --replace "install -m" "install -Dm"
'';
makeFlags = [ "prefix=$(out)" ];
passthru.updateScript = unstableGitUpdater {
tagConverter = writeShellScript "tagConverter" ''
read tag
test "$tag" = "0" \
&& tag=0.5; echo "$tag"
'';
};
meta = with lib; {
description = "User-level daemon that monitors NUMA topology and processes resource consumption to facilitate good NUMA resource access";
mainProgram = "numad";
homepage = "https://fedoraproject.org/wiki/Features/numad";
license = licenses.lgpl21;
platforms = platforms.linux;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
numactl,
ncurses,
check,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "numatop";
version = "2.5.1";
src = fetchFromGitHub {
owner = "intel";
repo = "numatop";
tag = "v${finalAttrs.version}";
hash = "sha256-951Sm2zu1mPxMbPdZy+kMH8RAQo0z+Gqf2lxsY/+Lrg=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
numactl
ncurses
];
nativeCheckInputs = [ check ];
doCheck = true;
meta = {
description = "Tool for runtime memory locality characterization and analysis of processes and threads on a NUMA system";
mainProgram = "numatop";
homepage = "https://01.org/numatop";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ dtzWill ];
platforms = [
"i686-linux"
"x86_64-linux"
"powerpc64-linux"
"powerpc64le-linux"
];
};
})

View File

@@ -0,0 +1,74 @@
{
lib,
fetchFromGitHub,
rustPlatform,
tzdata,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "numbat";
version = "1.16.0";
src = fetchFromGitHub {
owner = "sharkdp";
repo = "numbat";
tag = "v${version}";
hash = "sha256-1CAUl9NB1QjduXgwOIcMclXA6SpaTP+kd3j25BK5Q/8=";
};
cargoHash = "sha256-EBfhi7puB2To/1GLbXW6Tz1zazDswvh+NqqBkeqRtAI=";
env.NUMBAT_SYSTEM_MODULE_PATH = "${placeholder "out"}/share/numbat/modules";
postInstall = ''
mkdir -p $out/share/numbat
cp -r $src/numbat/modules $out/share/numbat/
mkdir -p $out/share/applications
cp $src/assets/numbat.desktop $out/share/applications
for size in 16 22 24 32 48 64 128 256 512; do
dims="''${size}x''${size}"
dest=$out/share/icons/hicolor/''${dims}/apps
mkdir -p $dest
cp $src/assets/numbat-''${dims}.png ''${dest}/numbat.png
done
mkdir -p $out/share/icons/hicolor/scalable/apps
cp $src/assets/numbat.svg $out/share/icons/hicolor/scalable/apps
'';
preCheck = ''
# The datetime library used by Numbat, "jiff", always attempts to use the
# system TZDIR on Unix and doesn't fall back to the embedded tzdb when not
# present.
export TZDIR=${tzdata}/share/zoneinfo
'';
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
description = "High precision scientific calculator with full support for physical units";
longDescription = ''
A statically typed programming language for scientific computations
with first class support for physical dimensions and units
'';
homepage = "https://numbat.dev";
changelog = "https://github.com/sharkdp/numbat/releases/tag/v${version}";
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [
giomf
atemu
];
mainProgram = "numbat";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
python3,
fetchFromSourcehut,
desktop-file-utils,
glib,
gobject-introspection,
gtk3,
libhandy,
librsvg,
meson,
ninja,
pkg-config,
wrapGAppsHook3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "numberstation";
version = "1.4.0";
format = "other";
src = fetchFromSourcehut {
owner = "~martijnbraam";
repo = "numberstation";
rev = version;
hash = "sha256-0T/Dc2i6auuZiWjcPR72JT8yOrzmdEmbW2PS5YhmEwI=";
};
postPatch = ''
patchShebangs build-aux/meson
'';
nativeBuildInputs = [
desktop-file-utils
glib
gtk3
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook3
];
buildInputs = [
gtk3
libhandy
librsvg
];
propagatedBuildInputs = with python3.pkgs; [
keyring
pygobject3
pyotp
];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
meta = {
changelog = "https://git.sr.ht/~martijnbraam/numberstation/refs/${version}";
description = "TOTP Authentication application for mobile";
mainProgram = "numberstation";
homepage = "https://sr.ht/~martijnbraam/numberstation/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ dotlambda ];
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
boost,
python3,
gtest,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "numcpp";
version = "2.14.2";
src = fetchFromGitHub {
owner = "dpilger26";
repo = "NumCpp";
tag = "Version_${finalAttrs.version}";
hash = "sha256-A2x7Ar/Ihk4iGb7J93hGULtfoI8xidkGtpkVWgicSFI=";
};
patches = [ ./pytest-CMakeLists.patch ];
nativeCheckInputs = [
gtest
python3
];
nativeBuildInputs = [ cmake ];
buildInputs = [ boost ];
cmakeFlags = lib.optionals finalAttrs.finalPackage.doCheck [
"-DBUILD_TESTS=ON"
"-DBUILD_MULTIPLE_TEST=ON"
];
doCheck = !stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isStatic;
postInstall = ''
substituteInPlace $out/share/NumCpp/cmake/NumCppConfig.cmake \
--replace-fail "\''${PACKAGE_PREFIX_DIR}/" ""
'';
NIX_CFLAGS_COMPILE = "-Wno-error";
meta = {
description = "Templatized Header Only C++ Implementation of the Python NumPy Library";
homepage = "https://github.com/dpilger26/NumCpp";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ spalf ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,18 @@
add --embed to $PYTHON_LD_FLAGS and strip a preceding whitespace to conform to CMP0004
--- a/test/pytest/src/CMakeLists.txt
+++ b/test/pytest/src/CMakeLists.txt
@@ -56,11 +56,12 @@ find_package(Python 3.11 REQUIRED
if(UNIX)
execute_process(
COMMAND
- python3-config --ldflags
+ python3-config --embed --ldflags
OUTPUT_VARIABLE
PYTHON_LD_FLAGS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
+ string(STRIP ${PYTHON_LD_FLAGS} PYTHON_LD_FLAGS)
endif()
target_link_libraries(${TARGET_NAME} PRIVATE

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchurl,
libintl,
}:
stdenv.mkDerivation rec {
pname = "numdiff";
version = "5.9.0";
src = fetchurl {
url = "mirror://savannah/numdiff/numdiff-${version}.tar.gz";
sha256 = "1vzmjh8mhwwysn4x4m2vif7q2k8i19x8azq7pzmkwwj4g48lla47";
};
buildInputs = [ libintl ];
meta = with lib; {
description = ''
A little program that can be used to compare putatively similar files
line by line and field by field, ignoring small numeric differences
or/and different numeric formats
'';
homepage = "https://www.nongnu.org/numdiff/";
license = licenses.gpl3Plus;
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchurl,
undmg,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "numi";
version = "3.32.721";
src = fetchurl {
url = "https://s3.numi.app/updates/${finalAttrs.version}/Numi.dmg";
hash = "sha256-IbX4nsrPqwOSlYdNJLeaRQwIDVJrzfMXFqRqixHd2zA=";
};
nativeBuildInputs = [ undmg ];
sourceRoot = ".";
installPhase = ''
runHook preInstall
mkdir -p "$out/Applications"
cp -R *.app "$out/Applications"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Beautiful calculator app for macOS";
homepage = "https://numi.app/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ FlameFlag ];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,42 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
inkscape,
xcursorgen,
}:
stdenvNoCC.mkDerivation rec {
pname = "numix-cursor-theme";
version = "1.2";
src = fetchFromGitHub {
owner = "numixproject";
repo = "numix-cursor-theme";
rev = "v${version}";
sha256 = "1q3w5i0h3ly6i7s9pqjdrb14kp89i78s0havri7lhiqyxizjvcvh";
};
nativeBuildInputs = [
inkscape
xcursorgen
];
buildPhase = ''
patchShebangs .
HOME=$TMP ./build.sh
'';
installPhase = ''
install -dm 755 $out/share/icons
cp -dr --no-preserve='ownership' Numix-Cursor{,-Light} $out/share/icons/
'';
meta = with lib; {
description = "Numix cursor theme";
homepage = "https://numixproject.github.io";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [ offline ];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
sassc,
glib,
libxml2,
gdk-pixbuf,
gtk-engine-murrine,
gitUpdater,
}:
stdenv.mkDerivation {
pname = "numix-gtk-theme";
version = "unstable-2021-06-08";
src = fetchFromGitHub {
repo = "numix-gtk-theme";
owner = "numixproject";
rev = "ad4b345cb19edba96bec72d6dc97ed1b568755a8";
hash = "sha256-7KX5xC6Gr6azqL2qyc8rYb3q9UhcGco2uEfltsQ+mgo=";
};
nativeBuildInputs = [
sassc
glib
libxml2
gdk-pixbuf
];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
postPatch = ''
substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
patchShebangs .
'';
passthru.updateScript = gitUpdater { };
meta = {
description = "Modern flat theme with a combination of light and dark elements (GNOME, Unity, Xfce and Openbox)";
homepage = "https://numixproject.github.io";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.all;
maintainers = [ lib.maintainers.romildo ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
numix-icon-theme,
hicolor-icon-theme,
gitUpdater,
}:
stdenvNoCC.mkDerivation rec {
pname = "numix-icon-theme-circle";
version = "25.01.31";
src = fetchFromGitHub {
owner = "numixproject";
repo = "numix-icon-theme-circle";
rev = version;
sha256 = "sha256-+gb4nyVNF6bjYCEiRq/L3wO4ZoUG4lt5l0vxye8inrQ=";
};
nativeBuildInputs = [ gtk3 ];
propagatedBuildInputs = [
numix-icon-theme
hicolor-icon-theme
];
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
cp -a Numix-Circle{,-Light} $out/share/icons
for panel in $out/share/icons/*/*/panel; do
ln -sf $(realpath ${numix-icon-theme}/share/icons/Numix/16/$(readlink $panel)) $panel
done
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
runHook postInstall
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Numix icon theme (circle version)";
homepage = "https://numixproject.github.io";
license = licenses.gpl3Only;
# darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ romildo ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
gtk3,
numix-icon-theme,
hicolor-icon-theme,
gitUpdater,
}:
stdenvNoCC.mkDerivation rec {
pname = "numix-icon-theme-square";
version = "25.01.31";
src = fetchFromGitHub {
owner = "numixproject";
repo = "numix-icon-theme-square";
rev = version;
sha256 = "sha256-ivYuY9qcJsMqIpYSVPeu067fYWE6iFGYamU9riQBF4A=";
};
nativeBuildInputs = [ gtk3 ];
propagatedBuildInputs = [
numix-icon-theme
hicolor-icon-theme
];
dontDropIconThemeCache = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/icons
cp -a Numix-Square{,-Light} $out/share/icons
for panel in $out/share/icons/*/*/panel; do
ln -sf $(realpath ${numix-icon-theme}/share/icons/Numix/16/$(readlink $panel)) $panel
done
for theme in $out/share/icons/*; do
gtk-update-icon-cache $theme
done
runHook postInstall
'';
passthru.updateScript = gitUpdater { };
meta = with lib; {
description = "Numix icon theme (square version)";
homepage = "https://numixproject.github.io";
license = licenses.gpl3Only;
# darwin cannot deal with file names differing only in case
platforms = platforms.linux;
maintainers = with maintainers; [ romildo ];
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
sassc,
glib,
gdk-pixbuf,
inkscape,
gtk-engine-murrine,
}:
stdenv.mkDerivation rec {
pname = "numix-solarized-gtk-theme";
version = "20230408";
src = fetchFromGitHub {
owner = "Ferdi265";
repo = "numix-solarized-gtk-theme";
rev = version;
sha256 = "sha256-r5xCe8Ew+/SuCUaZ0yjlumORTy/y1VwbQQjQ6uEyGsY=";
};
nativeBuildInputs = [
python3
sassc
glib
gdk-pixbuf
inkscape
];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
postPatch = ''
patchShebangs .
substituteInPlace Makefile --replace '$(DESTDIR)'/usr $out
'';
dontBuild = true;
installPhase = ''
runHook preInstall
for theme in colors/*.colors; do
theme="''${theme##*/}"
make THEME="''${theme/.colors/}" install
done
runHook postInstall
'';
meta = with lib; {
description = "Solarized versions of Numix GTK2 and GTK3 theme";
longDescription = ''
This is a fork of the Numix GTK theme that replaces the colors of the theme
and icons to use the solarized theme with a solarized green accent color.
This theme supports both the dark and light theme, just as Numix proper.
'';
homepage = "https://github.com/Ferdi265/numix-solarized-gtk-theme";
downloadPage = "https://github.com/Ferdi265/numix-solarized-gtk-theme/releases";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = [ maintainers.offline ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchurl,
gtk-engine-murrine,
}:
stdenv.mkDerivation {
version = "2017-04-24";
pname = "numix-sx-gtk-theme";
src = fetchurl {
url = "https://dl.opendesktop.org/api/files/download/id/1493077417/Numix-SX.tar.xz";
sha256 = "7e1983924b2d90e89eddb3da8f4c43dc1326fe138fd191c8212c7904dcd618b0";
};
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
dontBuild = true;
sourceRoot = ".";
installPhase = ''
install -dm 755 "$out/share/themes/"
cp -dr --no-preserve='ownership' Numix-SX-{Dark,FullDark,Light} "$out/share/themes/"
'';
meta = {
description = "Gray variation of Numix theme";
homepage = "https://www.gnome-look.org/p/1117412/";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.all;
maintainers = [ lib.maintainers.sauyon ];
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
stdenv,
fetchFromGitHub,
autoconf,
libX11,
libXext,
}:
stdenv.mkDerivation {
version = "1.2";
pname = "numlockx";
src = fetchFromGitHub {
owner = "rg3";
repo = "numlockx";
rev = "9159fd3c5717c595dadfcb33b380a85c88406185";
hash = "sha256-wrHBelxEADUKugmtR8loWaJ/6s5U4PBBz8V+Dr1yifA=";
};
buildInputs = [
libX11
libXext
autoconf
];
meta = {
description = "Allows to start X with NumLock turned on";
license = lib.licenses.mit;
platforms = lib.platforms.all;
mainProgram = "numlockx";
};
}

View File

@@ -0,0 +1,94 @@
{
stdenv,
lib,
fetchFromGitHub,
libpng,
libjpeg,
freetype,
xorg,
python3,
imagemagick,
gcc-arm-embedded,
pkg-config,
python3Packages,
makeDesktopItem,
copyDesktopItems,
}:
stdenv.mkDerivation rec {
pname = "numworks-epsilon";
version = "23.2.3";
src = fetchFromGitHub {
owner = "numworks";
repo = "epsilon";
rev = version;
hash = "sha256-w9ddcULE1MrGnYcXA0qOg1elQv/eBhcXqhMSjWT3Bkk=";
};
nativeBuildInputs = [
pkg-config
copyDesktopItems
];
buildInputs = [
libpng
libjpeg
freetype
xorg.libXext
python3
imagemagick
gcc-arm-embedded
python3Packages.lz4
];
makeFlags = [
"PLATFORM=simulator"
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ./output/release/simulator/linux/epsilon.bin $out/bin/epsilon
# Build the logo
assets="$src/ion/src/simulator/assets"
logo_dir="$out/share/icons/hicolor/scalable/apps"
logo="$logo_dir/numworks.svg"
mkdir -p "$logo_dir"
# Take opening svg tag
grep '<svg' "$assets/logo.svg" > "$logo"
# Insert path from logo mask and change color
grep path "$assets/icon_mask.svg" | sed 's/fill="[^"]*"/fill="#edb14b"/' >> "$logo"
# Add remainder of logo
grep -v '<svg' "$assets/logo.svg" >> "$logo"
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "epsilon";
exec = "epsilon";
icon = "numworks";
desktopName = "NumWorks Epsilon Calculator";
categories = [
"Utility"
"Math"
];
type = "Application";
})
];
meta = with lib; {
description = "Simulator for Epsilon, a High-performance graphing calculator operating system";
homepage = "https://numworks.com/";
license = licenses.cc-by-nc-sa-40;
maintainers = with maintainers; [ erikbackman ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,2 @@
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="a291", TAG+="uaccess"
SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", TAG+="uaccess"

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
udevCheckHook,
}:
stdenv.mkDerivation rec {
pname = "numworks-udev-rules";
version = "unstable-2020-08-31";
udevRules = ./50-numworks-calculator.rules;
dontUnpack = true;
nativeBuildInputs = [
udevCheckHook
];
doInstallCheck = true;
installPhase = ''
install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/50-numworks-calculator.rules"
'';
meta = with lib; {
description = "Udev rules for Numworks calculators";
homepage = "https://numworks.com";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ shamilton ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,3 @@
#!/bin/sh
wget -O 50-numworks-calculator.rules "https://workshop.numworks.com/files/drivers/linux/50-numworks-calculator.rules"

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromBitbucket,
cmake,
sqlite,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nunicode";
version = "1.11";
outputs = [
"out"
"sqlite"
];
src = fetchFromBitbucket {
owner = "alekseyt";
repo = "nunicode";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-6255YdX7eYSAj0EAE4RgX1m4XDNIF/Nc4ZCvXzTxpag=";
};
postPatch = ''
# load correct SQLite extension on all platforms
substituteInPlace sqlite3/testsuite --replace-fail \
"NU='./libnusqlite3.so'" \
"NU='./libnusqlite3'"
# fix expressions using like .. escape (https://sqlite.org/lang_expr.html#like)
substituteInPlace sqlite3/tests.sql --replace-fail '\\' '\'
# install SQLite extension in a separate output
echo >>sqlite3/CMakeLists.txt \
'install(TARGETS nusqlite3 DESTINATION "${placeholder "sqlite"}/lib")'
'';
nativeBuildInputs = [
cmake
sqlite
];
# avoid name-clash on case-insensitive filesystems
cmakeBuildDir = "build-dir";
cmakeFlags = [
# fix compatibility with CMake (https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html)
(lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "4.0")
];
doCheck = true;
checkPhase = ''
runHook preCheck
(
echo running SQLite testsuite
cd sqlite3
RESULT=$(../../sqlite3/testsuite < ../../sqlite3/tests.sql | sqlite3)
grep <<<$RESULT FAILED && echo SQLite testsuite failed && false
echo SQLite testsuite succeeded
)
runHook postCheck
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Fast, small and portable Unicode library with SQLite extension";
homepage = "https://bitbucket.org/alekseyt/nunicode";
changelog = "https://bitbucket.org/alekseyt/nunicode/src/${finalAttrs.version}/CHANGELOG";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.mjoerg ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
boost,
asio,
openssl,
zlib,
}:
stdenv.mkDerivation rec {
pname = "nuraft";
version = "2.1.0";
src = fetchFromGitHub {
owner = "eBay";
repo = "NuRaft";
rev = "v${version}";
sha256 = "sha256-puO8E7tSLqB0oq/NlzEZqQgIZKm7ZUb4HhR0XuI9dco=";
};
patches = [
# Fix gcc-13 build failure:
# https://github.com/eBay/NuRaft/pull/435
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/eBay/NuRaft/commit/fddf33a4d8cd7fcd0306cc838a30893a4df3d58f.patch";
hash = "sha256-JOtR3llE4QwQM7PBx+ILR87zsPB0GZ/aIKbSdHIrePA=";
})
];
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
asio
openssl
zlib
];
meta = with lib; {
homepage = "https://github.com/eBay/NuRaft";
description = "C++ implementation of Raft core logic as a replication library";
license = licenses.asl20;
maintainers = with maintainers; [ wheelsandmetal ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
makeBinaryWrapper,
gitMinimal,
mercurial,
nix,
}:
rustPlatform.buildRustPackage rec {
pname = "nurl";
version = "0.3.13";
src = fetchFromGitHub {
owner = "nix-community";
repo = "nurl";
rev = "v${version}";
hash = "sha256-rVqF+16esE27G7GS55RT91tD4x/GAzfVlIR0AgSknz0=";
};
cargoHash = "sha256-OUJGxNqytwz7530ByqkanpseVJJXAea/L2GIHnuSIqk=";
nativeBuildInputs = [
installShellFiles
makeBinaryWrapper
];
# tests require internet access
doCheck = false;
postInstall = ''
wrapProgram $out/bin/nurl \
--prefix PATH : ${
lib.makeBinPath [
gitMinimal
mercurial
nix
]
}
installManPage artifacts/nurl.1
installShellCompletion artifacts/nurl.{bash,fish} --zsh artifacts/_nurl
'';
env = {
GEN_ARTIFACTS = "artifacts";
};
meta = {
description = "Command-line tool to generate Nix fetcher calls from repository URLs";
homepage = "https://github.com/nix-community/nurl";
changelog = "https://github.com/nix-community/nurl/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ figsoda ];
mainProgram = "nurl";
};
}

View File

@@ -0,0 +1,45 @@
{
stdenv,
lib,
fetchurl,
autoPatchelfHook,
}:
stdenv.mkDerivation rec {
pname = "NuSMV";
version = "2.7.0";
src =
with stdenv;
fetchurl (
if isx86_64 && isLinux then
{
url = "https://nusmv.fbk.eu/distrib/${version}/NuSMV-${version}-linux64.tar.xz";
sha256 = "019d1pa5aw58n11is1024hs8d520b3pp2iyix78vp04yv7wd42l8";
}
else if isx86_64 && isDarwin then
{
url = "https://nusmv.fbk.eu/distrib/${version}/NuSMV-${version}-macos-universal.tar.xz";
sha256 = "098wllv4yx284qv9nsi8kd5pgh10cr1hig01a1p2rxgfmrki52wm";
}
else
throw "only linux and mac x86_64 are currently supported"
);
nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
installPhase = ''
install -m755 -D bin/NuSMV $out/bin/NuSMV
install -m755 -D bin/ltl2smv $out/bin/ltl2smv
cp -r include $out/include
cp -r lib $out/lib
'';
meta = with lib; {
description = "New symbolic model checker for the analysis of synchronous finite-state and infinite-state systems";
homepage = "https://nusmv.fbk.eu/";
maintainers = with maintainers; [ mgttlinger ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
callPackage,
fetchFromGitHub,
cmake,
ctestCheckHook,
buildPackages,
pkg-config,
icu,
catch2_3,
testers,
enableManpages ? buildPackages.pandoc.compiler.bootstrapAvailable,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "nuspell";
version = "5.1.6";
src = fetchFromGitHub {
owner = "nuspell";
repo = "nuspell";
tag = "v${finalAttrs.version}";
hash = "sha256-U/lHSxpKsBnamf4ikE2aIjEPSU5fxjtuSmhZR0jxMAI=";
};
nativeBuildInputs = [
cmake
pkg-config
]
++ lib.optional enableManpages buildPackages.pandoc;
strictDeps = true;
buildInputs = [ catch2_3 ];
propagatedBuildInputs = [ icu ];
cmakeFlags = lib.optional (!enableManpages) "-DBUILD_DOCS=OFF";
nativeCheckInputs = [
ctestCheckHook
];
doCheck = true;
outputs = [
"out"
"lib"
"dev"
];
passthru = {
withDicts = callPackage ./wrapper.nix { nuspell = finalAttrs.finalPackage; };
tests = {
wrapper = testers.testVersion {
package = finalAttrs.finalPackage.withDicts (d: [ d.en_US ]);
};
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
cmake = testers.hasCmakeConfigModules {
moduleNames = [ "Nuspell" ];
package = finalAttrs.finalPackage;
version = finalAttrs.version;
versionCheck = true;
};
};
};
meta = {
description = "Free and open source C++ spell checking library";
mainProgram = "nuspell";
pkgConfigModules = [ "nuspell" ];
homepage = "https://nuspell.github.io/";
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ fpletz ];
license = lib.licenses.lgpl3Plus;
changelog = "https://github.com/nuspell/nuspell/blob/v${finalAttrs.version}/CHANGELOG.md";
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
buildEnv,
nuspell,
hunspellDicts,
makeBinaryWrapper,
}:
lib.makeOverridable (
dicts: f:
buildEnv {
inherit (lib.appendToName "with-dicts" nuspell) name version;
paths = f dicts;
pathsToLink = [ "/share/hunspell" ];
nativeBuildInputs = [ makeBinaryWrapper ];
postBuild = ''
makeWrapper ${lib.getExe nuspell} $out/bin/nuspell \
--prefix DICPATH : $out/share/hunspell
'';
meta = {
inherit (nuspell.meta)
description
longDescription
homepage
changelog
license
maintainers
mainProgram
platforms
;
};
}
) hunspellDicts

View File

@@ -0,0 +1,16 @@
--- a/common/common.c
+++ b/common/common.c
@@ -1990,6 +1990,13 @@ ssize_t select_write(serial_handler_t *fd, const void *buf, const size_t buflen,
* communications media and/or vendor protocol.
*/
static const char * search_paths_builtin[] = {
+ "@avahi@",
+ "@freeipmi@",
+ "@libgpiod@",
+ "@libusb@",
+ "@neon@",
+ "@libmodbus@",
+ "@netsnmp@",
/* Use the library path (and bitness) provided during ./configure first */
LIBDIR,
"/usr"LIBDIR, /* Note: this can lead to bogus strings like */

View File

@@ -0,0 +1,10 @@
diff --git a/scripts/systemd/nutshutdown.in b/scripts/systemd/nutshutdown.in
index ace2485b3..9dee869bb 100755
--- a/scripts/systemd/nutshutdown.in
+++ b/scripts/systemd/nutshutdown.in
@@ -1,4 +1,5 @@
#!/bin/sh
+export NUT_CONFPATH="${NUT_CONFPATH-/etc/nut}"
# This script requires both nut-server (drivers)
# and nut-client (upsmon) to be present locally

View File

@@ -0,0 +1,163 @@
{
lib,
stdenv,
autoreconfHook,
avahi,
coreutils,
fetchurl,
freeipmi,
gd,
i2c-tools,
libgpiod_1,
libmodbus,
libtool,
libusb1,
makeWrapper,
neon,
net-snmp,
openssl,
pkg-config,
replaceVars,
systemd,
udev,
gnused,
withApcModbus ? false,
fetchFromGitHub,
}:
let
# rebuild libmodbus with downstream usb patches from
# https://github.com/networkupstools/libmodbus
# finding the docs for this was actually relatively hard
# so save them here for reference
# https://github.com/networkupstools/nut/wiki/APC-UPS-with-Modbus-protocol
libmodbus' = libmodbus.overrideAttrs (finalAttrs: {
version = "3.1.11-withUsbRTU-NUT";
src = fetchFromGitHub {
owner = "networkupstools";
repo = "libmodbus";
rev = "8b9bdcde6938f85415098af74b720b7ad5ed74b4";
hash = "sha256-ZimIVLKhVjknLNFB+1jGA9N/3YqxHfGX1+l1mpk5im4=";
};
buildInputs = [
libusb1
];
});
modbus = if withApcModbus then libmodbus' else libmodbus;
in
stdenv.mkDerivation rec {
pname = "nut";
version = "2.8.3";
src = fetchurl {
url = "https://networkupstools.org/source/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
sha256 = "sha256-1soX8LOQA7rHZJ6xerSnE+TV/KqP0a7cooNX1Z3wle0=";
};
patches = [
# This patch injects a default value for NUT_CONFPATH into the nutshutdown script
# since the way we build the package results in the binaries being hardcoded to check
# $out/etc/ups.conf instead of /etc/nut/ups.conf (where the module places the file).
# We also cannot use `--sysconfdir=/etc/nut` since that results in the install phase
# trying to install directly into /etc/nut which predictably fails
./nutshutdown-conf-default.patch
(replaceVars ./hardcode-paths.patch {
avahi = "${avahi}/lib";
freeipmi = "${freeipmi}/lib";
libgpiod = "${libgpiod_1}/lib";
libusb = "${libusb1}/lib";
neon = "${neon}/lib";
libmodbus = "${modbus}/lib";
netsnmp = "${net-snmp.lib}/lib";
})
];
buildInputs = [
neon
libusb1
openssl
udev
avahi
freeipmi
libgpiod_1
libtool
i2c-tools
net-snmp
gd
modbus
];
nativeBuildInputs = [
autoreconfHook
pkg-config
makeWrapper
];
doInstallCheck = true;
configureFlags = [
"--with-all"
"--with-ssl"
"--without-powerman" # Until we have it ...
"--with-systemdsystempresetdir=$(out)/lib/systemd/system-preset"
"--with-systemdsystemunitdir=$(out)/lib/systemd/system"
"--with-systemdshutdowndir=$(out)/lib/systemd/system-shutdown"
"--with-systemdtmpfilesdir=$(out)/lib/tmpfiles.d"
"--with-udev-dir=$(out)/etc/udev"
]
++ (lib.lists.optionals withApcModbus [
"--with-modbus+usb"
]);
enableParallelBuilding = true;
# Add `cgi-bin` to the default list to avoid pulling in whole
# of `gcc` into build closure.
stripDebugList = [
"cgi-bin"
"lib"
"lib32"
"lib64"
"libexec"
"bin"
"sbin"
];
postInstall = ''
substituteInPlace $out/lib/systemd/system-shutdown/nutshutdown \
--replace /bin/sed "${gnused}/bin/sed" \
--replace /bin/sleep "${coreutils}/bin/sleep" \
--replace /bin/systemctl "${systemd}/bin/systemctl"
for file in system/{nut-monitor.service,nut-driver-enumerator.service,nut-server.service,nut-driver@.service} system-shutdown/nutshutdown; do
substituteInPlace $out/lib/systemd/$file \
--replace "$out/etc/nut.conf" "/etc/nut/nut.conf"
done
substituteInPlace $out/lib/systemd/system/nut-driver-enumerator.path \
--replace "$out/etc/ups.conf" "/etc/nut/ups.conf"
# Suspicious/overly broad rule, remove it until we know better
rm $out/etc/udev/rules.d/52-nut-ipmipsu.rules
'';
meta = with lib; {
description = "Network UPS Tools";
longDescription = ''
Network UPS Tools is a collection of programs which provide a common
interface for monitoring and administering UPS, PDU and SCD hardware.
It uses a layered approach to connect all of the parts.
'';
homepage = "https://networkupstools.org/";
platforms = platforms.linux;
maintainers = [ maintainers.pierron ];
license = with licenses; [
gpl1Plus
gpl2Plus
gpl3Plus
];
priority = 10;
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchurl,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "nuttcp";
version = "8.2.2";
src = fetchurl {
url = "http://nuttcp.net/nuttcp/nuttcp-${version}.tar.bz2";
sha256 = "sha256-fq16ieeqoFnSDjQELFihmMKYHK1ylVDROI3fyQNtOYM=";
};
nativeBuildInputs = [
installShellFiles
];
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
installPhase = ''
mkdir -p $out/bin
cp nuttcp-${version} $out/bin/nuttcp
'';
postInstall = ''
installManPage nuttcp.8
'';
meta = with lib; {
description = "Network performance measurement tool";
longDescription = ''
nuttcp is a network performance measurement tool intended for use by
network and system managers. Its most basic usage is to determine the raw
TCP (or UDP) network layer throughput by transferring memory buffers from
a source system across an interconnecting network to a destination
system, either transferring data for a specified time interval, or
alternatively transferring a specified number of bytes. In addition to
reporting the achieved network throughput in Mbps, nuttcp also provides
additional useful information related to the data transfer such as user,
system, and wall-clock time, transmitter and receiver CPU utilization,
and loss percentage (for UDP transfers).
'';
license = licenses.gpl2Only;
homepage = "http://nuttcp.net/";
maintainers = [ ];
platforms = platforms.unix;
mainProgram = "nuttcp";
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
symlinkJoin,
callPackage,
fetchFromGitHub,
buildGoModule,
makeWrapper,
jq,
curl,
kubectl,
eksctl,
kind,
k3sup,
coreutils,
}:
let
branch = "3.0.0";
version = "3.0.1-beta.2405292059";
pname = "nuv";
in
buildGoModule {
inherit pname version;
src = fetchFromGitHub {
owner = "nuvolaris";
repo = "nuv";
rev = version;
hash = "sha256-MdnBvlA4S2Mi/bcbE+O02x+wvlIrsK1Zc0dySz4FB/w=";
};
subPackages = [ "." ];
vendorHash = "sha256-JkQbQ2NEaumXbAfsv0fNiQf/EwMs3SDLHvu7c/bU7fU=";
nativeBuildInputs = [
makeWrapper
jq
curl
];
ldflags = [
"-s"
"-w"
"-X main.NuvVersion=${version}"
"-X main.NuvBranch=${branch}"
];
# false because tests require some modifications inside nix-env
doCheck = false;
postInstall =
let
nuv-bin = symlinkJoin {
name = "nuv-bin";
paths = [
coreutils
kubectl
eksctl
kind
k3sup
];
};
in
''
wrapProgram $out/bin/nuv --set NUV_BIN "${nuv-bin}/bin"
'';
passthru.tests = {
simple = callPackage ./tests.nix { inherit version; };
};
meta = {
homepage = "https://nuvolaris.io/";
description = "CLI tool for running tasks using the Nuvolaris serverless engine";
license = lib.licenses.asl20;
mainProgram = "nuv";
maintainers = with lib.maintainers; [
msciabarra
d4rkstar
];
};
}

View File

@@ -0,0 +1,22 @@
{
runCommand,
nuv,
version,
}:
runCommand "nuv-test-run"
{
nativeBuildInputs = [ nuv ];
}
''
export TMP_BASE=$(mktemp -d /tmp/.nuv-XXXXX)
export HOME=$TMP_BASE
export NUV_REPO=""
export NUV_ROOT=$TMP_BASE/.nuv/3.0.0/olaris
rm -rf $TMP_BASE/.nuv && \
mkdir -p $TMP_BASE/.nuv/3.0.0/olaris && \
mkdir $TMP_BASE/.nuv/tmp
V=$(nuv -version 2>/dev/null)
diff -U3 --color=auto <(echo "$V") <(echo "${version}")
touch $out
''

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
texliveMedium,
}:
stdenv.mkDerivation rec {
pname = "nuweb";
version = "1.62";
src = fetchurl {
url = "mirror://sourceforge/project/nuweb/${pname}-${version}.tar.gz";
sha256 = "sha256-JVqPYkYPXBT0xLNWuW4DV6N6ZlKuBYQGT46frhnpU64=";
};
buildInputs = [ texliveMedium ];
patchPhase = ''
sed -i -e 's|nuweb -r|./nuweb -r|' Makefile
'';
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: global.o:/build/nuweb-1.62/global.h:91: multiple definition of
# `current_sector'; main.o:/build/nuweb-1.62/global.h:91: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
buildPhase = ''
make nuweb
make nuweb.pdf nuwebdoc.pdf all
'';
installPhase = ''
install -d $out/bin $out/share/man/man1 $out/share/doc/${pname}-${version} $out/share/emacs/site-lisp
cp nuweb $out/bin
cp nuweb.el $out/share/emacs/site-lisp
gzip -c nuweb.1 > $out/share/man/man1/nuweb.1.gz
cp htdocs/index.html nuweb.w nuweb.pdf nuwebdoc.pdf README $out/share/doc/${pname}-${version}
'';
meta = with lib; {
description = "Simple literate programming tool";
mainProgram = "nuweb";
homepage = "https://nuweb.sourceforge.net";
license = licenses.free;
maintainers = [ ];
platforms = platforms.unix;
};
}
# TODO: nuweb.el Emacs integration