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,72 @@
{
cmake,
doxygen,
fetchFromGitHub,
jrl-cmakemodules,
lib,
pinocchio,
pkg-config,
python3Packages,
pythonSupport ? false,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ndcurves";
version = "2.0.0";
src = fetchFromGitHub {
owner = "loco-3d";
repo = "ndcurves";
rev = "v${finalAttrs.version}";
hash = "sha256-dDH2XpnlBlhG5Q8N9Aljxvf/K9jFuiAx0lyBIcXNOZE=";
};
outputs = [
"out"
"doc"
];
strictDeps = true;
nativeBuildInputs = [
cmake
doxygen
pkg-config
]
++ lib.optionals pythonSupport [
python3Packages.python
python3Packages.pythonImportsCheckHook
];
propagatedBuildInputs = [
jrl-cmakemodules
]
++ lib.optionals pythonSupport [
python3Packages.eigenpy
python3Packages.pinocchio
]
++ lib.optional (!pythonSupport) pinocchio;
cmakeFlags = [
(lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
(lib.cmakeBool "CURVES_WITH_PINOCCHIO_SUPPORT" true)
]
++ lib.optional stdenv.hostPlatform.isAarch64 (
lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'curves_tests|python-curves'"
)
++ lib.optional (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) (
lib.cmakeFeature "CMAKE_CTEST_ARGUMENTS" "--exclude-regex;'test-so3-smooth'"
);
doCheck = true;
pythonImportsCheck = [ "ndcurves" ];
meta = {
description = "Library for creating smooth cubic splines";
homepage = "https://github.com/loco-3d/ndcurves";
license = lib.licenses.bsd2;
maintainers = [ lib.maintainers.nim65s ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchurl,
avahi,
obs-studio-plugins,
}:
let
versionJSON = lib.importJSON ./version.json;
ndiPlatform =
if stdenv.hostPlatform.isAarch64 then
"aarch64-rpi4-linux-gnueabi"
else if stdenv.hostPlatform.isAarch32 then
"arm-rpi2-linux-gnueabihf"
else if stdenv.hostPlatform.isx86_64 then
"x86_64-linux-gnu"
else
throw "unsupported platform for NDI SDK";
in
stdenv.mkDerivation rec {
pname = "ndi-6";
version = versionJSON.version;
majorVersion = lib.versions.major version;
installerName = "Install_NDI_SDK_v${majorVersion}_Linux";
src = fetchurl {
url = "https://downloads.ndi.tv/SDK/NDI_SDK_Linux/${installerName}.tar.gz";
hash = versionJSON.hash;
};
buildInputs = [ avahi ];
unpackPhase = ''
unpackFile $src
echo y | ./${installerName}.sh
sourceRoot="NDI SDK for Linux";
'';
installPhase = ''
mkdir $out
mv bin/${ndiPlatform} $out/bin
for i in $out/bin/*; do
if [ -L "$i" ]; then continue; fi
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i"
done
patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-record
patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-free-audio
mv lib/${ndiPlatform} $out/lib
for i in $out/lib/*; do
if [ -L "$i" ]; then continue; fi
patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" "$i"
done
rm $out/bin/libndi.so.${majorVersion}
ln -s $out/lib/libndi.so $out/bin/libndi.so.${majorVersion}
# Fake ndi version 5 for compatibility with DistroAV (obs plugin using NDI)
ln -s $out/lib/libndi.so $out/bin/libndi.so.5
mv include examples $out/
mkdir -p $out/share/doc/ndi-6
mv licenses $out/share/doc/ndi-6/licenses
mv documentation/* $out/share/doc/ndi-6/
'';
# Stripping breaks ndi-record.
dontStrip = true;
passthru.tests = {
inherit (obs-studio-plugins) distroav;
};
passthru.updateScript = ./update.py;
meta = {
homepage = "https://ndi.video/ndi-sdk/";
description = "NDI Software Developer Kit";
platforms = [
"x86_64-linux"
"i686-linux"
"aarch64-linux"
"armv7l-linux"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ globule655 ];
};
}

77
pkgs/by-name/nd/ndi-6/update.py Executable file
View File

@@ -0,0 +1,77 @@
#!/usr/bin/env nix-shell
#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ ps.absl-py ps.requests ])"
import hashlib
import io
import json
import os.path
import tarfile
import requests
from absl import app, flags
BASE_NAME = "Install_NDI_SDK_v6_Linux"
NDI_SDK_URL = f"https://downloads.ndi.tv/SDK/NDI_SDK_Linux/{BASE_NAME}.tar.gz"
NDI_EXEC = f"{BASE_NAME}.sh"
NDI_ARCHIVE_MAGIC = b"__NDI_ARCHIVE_BEGIN__\n"
FLAG_out = flags.DEFINE_string("out", None, "Path to read/write version.json from/to.")
def find_version_json() -> str:
if FLAG_out.value:
return FLAG_out.value
try_paths = ["pkgs/by-name/nd/ndi-6/version.json", "version.json"]
for path in try_paths:
if os.path.exists(path):
return path
raise Exception(
"Couldn't figure out where to write version.json; try specifying --out"
)
def fetch_tarball() -> bytes:
r = requests.get(NDI_SDK_URL)
r.raise_for_status()
return r.content
def read_version(tarball: bytes) -> str:
# Find the inner script.
outer_tarfile = tarfile.open(fileobj=io.BytesIO(tarball), mode="r:gz")
eula_script = outer_tarfile.extractfile(NDI_EXEC).read()
# Now find the archive embedded within the script.
archive_start = eula_script.find(NDI_ARCHIVE_MAGIC) + len(NDI_ARCHIVE_MAGIC)
inner_tarfile = tarfile.open(
fileobj=io.BytesIO(eula_script[archive_start:]), mode="r:gz"
)
# Now find Version.txt...
version_txt = (
inner_tarfile.extractfile("NDI SDK for Linux/Version.txt")
.read()
.decode("utf-8")
)
_, _, version = version_txt.strip().partition(" v")
return version
def main(argv):
tarball = fetch_tarball()
sha256 = hashlib.sha256(tarball).hexdigest()
version = {
"hash": f"sha256:{sha256}",
"version": read_version(tarball),
}
out_path = find_version_json()
with open(out_path, "w") as f:
json.dump(version, f)
f.write("\n")
if __name__ == "__main__":
app.run(main)

View File

@@ -0,0 +1 @@
{"hash": "sha256-C99mJkUn+L43+iLt3SuFFLmGilik2D+AoH2+tHnuFNQ=", "version": "6.2.0"}

View File

@@ -0,0 +1,85 @@
{
lib,
stdenv,
fetchurl,
avahi,
obs-studio-plugins,
}:
let
versionJSON = lib.importJSON ./version.json;
ndiPlatform =
if stdenv.hostPlatform.isAarch64 then
"aarch64-rpi4-linux-gnueabi"
else if stdenv.hostPlatform.isAarch32 then
"arm-rpi2-linux-gnueabihf"
else if stdenv.hostPlatform.isx86_64 then
"x86_64-linux-gnu"
else if stdenv.hostPlatform.isi686 then
"i686-linux-gnu"
else
throw "unsupported platform for NDI SDK";
in
stdenv.mkDerivation rec {
pname = "ndi";
version = versionJSON.version;
majorVersion = builtins.head (builtins.splitVersion version);
installerName = "Install_NDI_SDK_v${majorVersion}_Linux";
src = fetchurl {
name = "${pname}-${version}.tar.gz";
url = "https://downloads.ndi.tv/SDK/NDI_SDK_Linux/${installerName}.tar.gz";
hash = versionJSON.hash;
};
buildInputs = [ avahi ];
unpackPhase = ''
unpackFile $src
echo y | ./${installerName}.sh
sourceRoot="NDI SDK for Linux";
'';
installPhase = ''
mkdir $out
mv bin/${ndiPlatform} $out/bin
for i in $out/bin/*; do
if [ -L "$i" ]; then continue; fi
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$i"
done
patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" $out/bin/ndi-record
mv lib/${ndiPlatform} $out/lib
for i in $out/lib/*; do
if [ -L "$i" ]; then continue; fi
patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" "$i"
done
rm $out/bin/libndi.so.${majorVersion}
ln -s $out/lib/libndi.so.${version} $out/bin/libndi.so.${majorVersion}
mv include examples $out/
mkdir -p $out/share/doc/${pname}-${version}
mv licenses $out/share/doc/${pname}-${version}/licenses
mv documentation/* $out/share/doc/${pname}-${version}/
'';
# Stripping breaks ndi-record.
dontStrip = true;
passthru.tests = {
inherit (obs-studio-plugins) distroav;
};
passthru.updateScript = ./update.py;
meta = with lib; {
homepage = "https://ndi.video/ndi-sdk/";
description = "NDI Software Developer Kit";
platforms = [
"x86_64-linux"
"i686-linux"
"aarch64-linux"
"armv7l-linux"
];
hydraPlatforms = [ ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
};
}

77
pkgs/by-name/nd/ndi/update.py Executable file
View File

@@ -0,0 +1,77 @@
#!/usr/bin/env nix-shell
#! nix-shell -i python -p "python3.withPackages (ps: with ps; [ ps.absl-py ps.requests ])"
import hashlib
import io
import json
import os.path
import tarfile
import requests
from absl import app, flags
BASE_NAME = "Install_NDI_SDK_v5_Linux"
NDI_SDK_URL = f"https://downloads.ndi.tv/SDK/NDI_SDK_Linux/{BASE_NAME}.tar.gz"
NDI_EXEC = f"{BASE_NAME}.sh"
NDI_ARCHIVE_MAGIC = b"__NDI_ARCHIVE_BEGIN__\n"
FLAG_out = flags.DEFINE_string("out", None, "Path to read/write version.json from/to.")
def find_version_json() -> str:
if FLAG_out.value:
return FLAG_out.value
try_paths = ["pkgs/development/libraries/ndi/version.json", "version.json"]
for path in try_paths:
if os.path.exists(path):
return path
raise Exception(
"Couldn't figure out where to write version.json; try specifying --out"
)
def fetch_tarball() -> bytes:
r = requests.get(NDI_SDK_URL)
r.raise_for_status()
return r.content
def read_version(tarball: bytes) -> str:
# Find the inner script.
outer_tarfile = tarfile.open(fileobj=io.BytesIO(tarball), mode="r:gz")
eula_script = outer_tarfile.extractfile(NDI_EXEC).read()
# Now find the archive embedded within the script.
archive_start = eula_script.find(NDI_ARCHIVE_MAGIC) + len(NDI_ARCHIVE_MAGIC)
inner_tarfile = tarfile.open(
fileobj=io.BytesIO(eula_script[archive_start:]), mode="r:gz"
)
# Now find Version.txt...
version_txt = (
inner_tarfile.extractfile("NDI SDK for Linux/Version.txt")
.read()
.decode("utf-8")
)
_, _, version = version_txt.strip().partition(" v")
return version
def main(argv):
tarball = fetch_tarball()
sha256 = hashlib.sha256(tarball).hexdigest()
version = {
"hash": f"sha256:{sha256}",
"version": read_version(tarball),
}
out_path = find_version_json()
with open(out_path, "w") as f:
json.dump(version, f)
f.write("\n")
if __name__ == "__main__":
app.run(main)

View File

@@ -0,0 +1 @@
{"hash": "sha256:0wh5bqy9xx08wnfah92pgs4f6xn6mwfyhwdzbhf5ghkbw8pc7z0w", "version": "5.6.1"}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchurl,
perl,
}:
stdenv.mkDerivation rec {
pname = "ndisc6";
version = "1.0.4";
src = fetchurl {
url = "https://www.remlab.net/files/ndisc6/archive/ndisc6-${version}.tar.bz2";
sha256 = "07swyar1hl83zxmd7fqwb2q0c0slvrswkcfp3nz5lknrk15dmcdb";
};
buildInputs = [ perl ];
configureFlags = [
"--sysconfdir=/etc"
"--localstatedir=/var"
"--disable-suid-install"
];
installFlags = [
"sysconfdir=\${out}/etc"
"localstatedir=$(TMPDIR)"
];
meta = with lib; {
homepage = "https://www.remlab.net/ndisc6/";
description = "Small collection of useful tools for IPv6 networking";
maintainers = [ ];
platforms = platforms.linux;
license = licenses.gpl2Only;
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
systemd,
pkg-config,
}:
stdenv.mkDerivation {
version = "1.06";
pname = "ndjbdns";
src = fetchFromGitHub {
owner = "pjps";
repo = "ndjbdns";
rev = "64d371b6f887621de7bf8bd495be10442b2accd0";
sha256 = "0gjyvn8r66kp49gasd6sqfvg2pj0c6v67hnq7cqwl04kj69rfy86";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [ ] ++ lib.optional stdenv.hostPlatform.isLinux systemd;
meta = with lib; {
description = "Brand new release of the Djbdns";
longDescription = ''
Djbdns is a fullyfledged Domain Name System(DNS), originally written by the eminent author of qmail, Dr. D J Bernstein.
'';
homepage = "http://pjp.dgplug.org/ndjbdns/";
license = licenses.gpl2Plus;
maintainers = [ ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
fetchFromGitHub,
doxygen,
pkg-config,
python3,
python3Packages,
wafHook,
boost,
openssl,
sqlite,
}:
stdenv.mkDerivation rec {
pname = "ndn-cxx";
version = "0.9.0";
src = fetchFromGitHub {
owner = "named-data";
repo = "ndn-cxx";
rev = "ndn-cxx-${version}";
sha256 = "sha256-u9+QxqdCET1f5B54HF+Jk/YuQvhcYWsPNIVHi5l0XTM=";
};
nativeBuildInputs = [
doxygen
pkg-config
python3
python3Packages.sphinx
wafHook
];
buildInputs = [
boost
openssl
sqlite
];
wafConfigureFlags = [
"--with-openssl=${openssl.dev}"
"--boost-includes=${boost.dev}/include"
"--boost-libs=${boost.out}/lib"
"--with-tests"
];
doCheck = false; # some tests fail in upstream, some fail because of the sandbox environment
checkPhase = ''
runHook preCheck
LD_PRELOAD=build/libndn-cxx.so build/unit-tests
runHook postCheck
'';
meta = with lib; {
homepage = "https://named-data.net/";
description = "Named Data Networking (NDN) or Content Centric Networking (CCN) abstraction";
longDescription = ''
ndn-cxx is a C++ library, implementing Named Data Networking (NDN)
primitives that can be used to implement various NDN applications.
NDN operates by addressing and delivering Content Objects directly
by Name instead of merely addressing network end-points. In addition,
the NDN security model explicitly secures individual Content Objects
rather than securing the connection or pipe. Named and secured
content resides in distributed caches automatically populated on
demand or selectively pre-populated. When requested by name, NDN
delivers named content to the user from the nearest cache, thereby
traversing fewer network hops, eliminating redundant requests,
and consuming less resources overall.
'';
license = licenses.lgpl3;
platforms = platforms.unix;
maintainers = with maintainers; [
sjmackenzie
bertof
];
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
boost ? ndn-cxx.boost,
fetchFromGitHub,
libpcap,
ndn-cxx,
openssl,
pkg-config,
sphinx,
wafHook,
}:
stdenv.mkDerivation rec {
pname = "ndn-tools";
version = "24.07";
src = fetchFromGitHub {
owner = "named-data";
repo = "ndn-tools";
rev = "ndn-tools-${version}";
sha256 = "sha256-rzGd+8SkztrkXRXcEcQm6rOtAGnF7h/Jg8jaBb7FP9w=";
};
nativeBuildInputs = [
pkg-config
sphinx
wafHook
];
buildInputs = [
libpcap
ndn-cxx
openssl
];
wafConfigureFlags = [
"--boost-includes=${boost.dev}/include"
"--boost-libs=${boost.out}/lib"
"--with-tests"
];
doCheck = false; # some tests fail because of the sandbox environment
checkPhase = ''
runHook preCheck
build/unit-tests
runHook postCheck
'';
meta = with lib; {
homepage = "https://named-data.net/";
description = "Named Data Networking (NDN) Essential Tools";
license = licenses.gpl3Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ bertof ];
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
autoreconfHook,
fetchFromGitHub,
json_c,
libpcap,
libtool,
pkg-config,
which,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ndpi";
version = "4.10";
src = fetchFromGitHub {
owner = "ntop";
repo = "nDPI";
tag = finalAttrs.version;
hash = "sha256-iXqvDMJsOXcg9YkqKFgInLLfH6j/HEp4bEaIl6dpVtc=";
};
nativeBuildInputs = [
autoreconfHook
libtool
pkg-config
which
];
buildInputs = [
json_c
libpcap
];
meta = with lib; {
description = "Library for deep-packet inspection";
longDescription = ''
nDPI is a library for deep-packet inspection based on OpenDPI.
'';
homepage = "https://www.ntop.org/products/deep-packet-inspection/ndpi/";
changelog = "https://github.com/ntop/nDPI/blob/${finalAttrs.version}/CHANGELOG.md";
license = with licenses; [
lgpl3Plus
bsd3
];
maintainers = with maintainers; [ takikawa ];
mainProgram = "ndpiReader";
platforms = with platforms; unix;
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
gzip,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "ndppd";
version = "0.2.5";
src = fetchFromGitHub {
owner = "DanielAdolfsson";
repo = "ndppd";
rev = version;
sha256 = "0niri5q9qyyyw5lmjpxk19pv3v4srjvmvyd5k6ks99mvqczjx9c0";
};
nativeBuildInputs = [ gzip ];
makeFlags = [
"PREFIX=$(out)"
];
preConfigure = ''
substituteInPlace Makefile --replace /bin/gzip gzip
'';
postInstall = ''
mkdir -p $out/etc
cp ndppd.conf-dist $out/etc/ndppd.conf
'';
passthru.tests = { inherit (nixosTests) ndppd; };
meta = with lib; {
description = "Daemon that proxies NDP (Neighbor Discovery Protocol) messages between interfaces";
homepage = "https://github.com/DanielAdolfsson/ndppd";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ fadenb ];
mainProgram = "ndppd";
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchFromGitHub,
autoconf,
automake,
}:
stdenv.mkDerivation rec {
pname = "ndstool";
version = "2.3.1";
src = fetchFromGitHub {
owner = "devkitPro";
repo = "ndstool";
rev = "v${version}";
sha256 = "sha256-121xEmbt1WBR1wi4RLw9/iLHqkpyXImXKiCNnLCYnJs=";
};
nativeBuildInputs = [
autoconf
automake
];
preConfigure = "./autogen.sh";
meta = {
homepage = "https://github.com/devkitPro/ndstool";
description = "Tool to unpack and repack nds rom";
maintainers = [ lib.maintainers.marius851000 ];
license = lib.licenses.gpl3;
mainProgram = "ndstool";
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "ndstrim";
version = "0.2.1";
src = fetchFromGitHub {
owner = "Nemris";
repo = "ndstrim";
rev = "v${version}";
hash = "sha256-KgtejBbFg6+klc8OpCs1CIb+7uVPCtP0/EM671vxauk=";
};
cargoHash = "sha256-wRMMWeZDk9Xt3263pq20Qioy1x8egiPhuoPxmpNTq8M=";
meta = with lib; {
description = "Trim the excess padding found in Nintendo DS(i) ROMs";
homepage = "https://github.com/Nemris/ndstrim";
changelog = "https://github.com/Nemris/ndstrim/blob/${src.rev}/CHANGELOG.md";
license = licenses.mit;
platforms = platforms.unix;
maintainers = with maintainers; [ thiagokokada ];
mainProgram = "ndstrim";
};
}