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,40 @@
{
lib,
buildGoModule,
fetchgit,
makeWrapper,
mpv,
}:
buildGoModule rec {
pname = "ff2mpv-go";
version = "1.0.1";
src = fetchgit {
url = "https://git.clsr.net/util/ff2mpv-go/";
rev = "v${version}";
hash = "sha256-e/AuOA3isFTyBf97Zwtr16yo49UdYzvktV5PKB/eH/s=";
};
nativeBuildInputs = [
makeWrapper
];
vendorHash = null;
postInstall = ''
mkdir -p "$out/lib/mozilla/native-messaging-hosts"
$out/bin/ff2mpv-go --manifest > "$out/lib/mozilla/native-messaging-hosts/ff2mpv.json"
'';
postFixup = ''
wrapProgram $out/bin/ff2mpv-go --suffix PATH ":" ${lib.makeBinPath [ mpv ]}
'';
meta = with lib; {
description = "Native messaging host for ff2mpv written in Go";
homepage = "https://git.clsr.net/util/ff2mpv-go/";
license = licenses.publicDomain;
maintainers = with maintainers; [ ambroisie ];
mainProgram = "ff2mpv-go";
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
let
firefoxPaths = [
"lib/mozilla/native-messaging-hosts"
# wrapFirefox only links lib/mozilla path, so this is ineffective
# Still the above path works, despite documentation stating otherwise
# See: https://librewolf.net/docs/faq/#how-do-i-get-native-messaging-to-work
# "lib/librewolf/native-messaging-hosts"
];
chromiumPaths = [
"etc/chromium/native-messaging-hosts"
"etc/opt/vivaldi/native-messaging-hosts"
"etc/opt/chrome/native-messaging-hosts"
"etc/opt/edge/native-messaging-hosts"
];
in
rustPlatform.buildRustPackage rec {
pname = "ff2mpv-rust";
version = "1.1.7";
src = fetchFromGitHub {
owner = "ryze312";
repo = "ff2mpv-rust";
rev = version;
hash = "sha256-kJpKcwwwGjFYE7R4ZhkEGK44QqxsUEB/Scj0RoySta4=";
};
cargoHash = "sha256-O8OAynSdZdtqNS+wAQ1oAs2HjueC41O8RFqESRHr+6o=";
postInstall = ''
$out/bin/ff2mpv-rust manifest > manifest.json
$out/bin/ff2mpv-rust manifest_chromium > manifest_chromium.json
for path in ${toString firefoxPaths}
do
mkdir -p "$out/$path"
cp manifest.json "$out/$path/ff2mpv.json"
done
for path in ${toString chromiumPaths}
do
mkdir -p "$out/$path"
cp manifest_chromium.json "$out/$path/ff2mpv.json"
done
'';
meta = with lib; {
description = "Native messaging host for ff2mpv written in Rust";
homepage = "https://github.com/ryze312/ff2mpv-rust";
license = licenses.gpl3Only;
maintainers = with maintainers; [ ryze ];
mainProgram = "ff2mpv-rust";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
mpv,
}:
stdenv.mkDerivation rec {
pname = "ff2mpv";
version = "5.1.0";
src = fetchFromGitHub {
owner = "woodruffw";
repo = "ff2mpv";
rev = "v${version}";
hash = "sha256-Xx18EX/MxLrnwZGwMFZJxJURUpjU2P01CQue5XbZ3fw=";
};
buildInputs = [
python3
mpv
];
postPatch = ''
patchShebangs .
substituteInPlace ff2mpv.json \
--replace '/home/william/scripts/ff2mpv' "$out/bin/ff2mpv.py"
'';
installPhase = ''
mkdir -p $out/bin $out/lib/mozilla/native-messaging-hosts
cp ff2mpv.py $out/bin
cp ff2mpv.json $out/lib/mozilla/native-messaging-hosts
'';
meta = {
description = "Native Messaging Host for ff2mpv firefox addon";
homepage = "https://github.com/woodruffw/ff2mpv";
license = lib.licenses.mit;
maintainers = [ ];
mainProgram = "ff2mpv.py";
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
makeWrapper,
perl,
ffmpeg-full,
gawk,
imagemagick,
xdpyinfo,
xprop,
xrectsel,
xwininfo,
}:
stdenv.mkDerivation rec {
pname = "ffcast";
version = "2.5.1";
src = fetchFromGitHub {
owner = "ropery";
repo = "FFcast";
rev = version;
sha256 = "sha256-kxqwDGEguFTFHkQzXctXqxslt0+bYnfUdQ8C/8+eTXo=";
};
nativeBuildInputs = [
autoreconfHook
makeWrapper
perl # for pod2man
];
configureFlags = [ "--disable-xrectsel" ];
postInstall =
let
binPath = lib.makeBinPath [
ffmpeg-full
gawk
imagemagick
xdpyinfo
xprop
xrectsel
xwininfo
];
in
''
wrapProgram $out/bin/ffcast --prefix PATH : ${binPath}
'';
meta = {
description = "Run commands on rectangular screen regions";
homepage = "https://github.com/ropery/FFcast";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ sikmir ];
platforms = lib.platforms.linux;
mainProgram = "ffcast";
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
bashInteractive,
xdg-utils,
file,
coreutils,
w3m,
xdotool,
}:
stdenv.mkDerivation rec {
pname = "fff";
version = "2.2";
src = fetchFromGitHub {
owner = "dylanaraps";
repo = "fff";
rev = version;
sha256 = "14ymdw6l6phnil0xf1frd5kgznaiwppcic0v4hb61s1zpf4wrshg";
};
pathAdd = lib.makeSearchPath "bin" [
xdg-utils
file
coreutils
w3m
xdotool
];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bashInteractive ];
dontBuild = true;
makeFlags = [ "PREFIX=$(out)" ];
postInstall = ''
wrapProgram "$out/bin/fff" --prefix PATH : $pathAdd
'';
meta = with lib; {
description = "Fucking Fast File-Manager";
mainProgram = "fff";
homepage = "https://github.com/dylanaraps/fff";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
libgit2,
openssl,
zlib,
}:
rustPlatform.buildRustPackage rec {
pname = "ffizer";
version = "2.13.5";
buildFeatures = [ "cli" ];
src = fetchFromGitHub {
owner = "ffizer";
repo = "ffizer";
rev = version;
hash = "sha256-kYsHhNW9UkttKVNEY9+Z9EZWDNIuhCWTmRJytaZVgKc=";
};
cargoHash = "sha256-zsJ5RjqxzCwRJQvWi65NwZ/w3lIvZvkE80EdmNeJUdg=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
libgit2
openssl
zlib
];
env.OPENSSL_NO_VENDOR = true;
checkFlags = [
# requires internet access
"--skip=run_test_samples_tests_data_template_2"
];
meta = {
description = "Files and folders initializer / generator based on templates";
homepage = "https://github.com/ffizer/ffizer";
changelog = "https://github.com/ffizer/ffizer/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.cc0;
maintainers = with lib.maintainers; [ XBagon ];
mainProgram = "ffizer";
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
givaro,
pkg-config,
blas,
lapack,
gmpxx,
}:
assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec {
pname = "fflas-ffpack";
version = "2.5.0";
src = fetchFromGitHub {
owner = "linbox-team";
repo = "fflas-ffpack";
rev = "v${version}";
sha256 = "sha256-Eztc2jUyKRVUiZkYEh+IFHkDuPIy+Gx3ZW/MsuOVaMc=";
};
nativeCheckInputs = [
gmpxx
];
enableParallelBuilding = true;
nativeBuildInputs = [
autoreconfHook
pkg-config
]
++ lib.optionals doCheck nativeCheckInputs;
buildInputs = [
givaro
blas
lapack
];
configureFlags = [
"--with-blas-libs=-lcblas"
"--with-lapack-libs=-llapacke"
"--without-archnative"
]
++ lib.optionals stdenv.hostPlatform.isx86_64 [
# disable SIMD instructions (which are enabled *when available* by default)
# for now we need to be careful to disable *all* relevant versions of an instruction set explicitly (https://github.com/linbox-team/fflas-ffpack/issues/284)
"--${if stdenv.hostPlatform.sse3Support then "enable" else "disable"}-sse3"
"--${if stdenv.hostPlatform.ssse3Support then "enable" else "disable"}-ssse3"
"--${if stdenv.hostPlatform.sse4_1Support then "enable" else "disable"}-sse41"
"--${if stdenv.hostPlatform.sse4_2Support then "enable" else "disable"}-sse42"
"--${if stdenv.hostPlatform.avxSupport then "enable" else "disable"}-avx"
"--${if stdenv.hostPlatform.avx2Support then "enable" else "disable"}-avx2"
"--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512f"
"--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512dq"
"--${if stdenv.hostPlatform.avx512Support then "enable" else "disable"}-avx512vl"
"--${if stdenv.hostPlatform.fmaSupport then "enable" else "disable"}-fma"
"--${if stdenv.hostPlatform.fma4Support then "enable" else "disable"}-fma4"
];
doCheck = true;
meta = with lib; {
description = "Finite Field Linear Algebra Subroutines";
mainProgram = "fflas-ffpack-config";
license = licenses.lgpl21Plus;
teams = [ teams.sage ];
platforms = platforms.unix;
homepage = "https://linbox-team.github.io/fflas-ffpack/";
};
}

View File

@@ -0,0 +1,50 @@
{
autoPatchelfHook,
cups,
dpkg,
fetchurl,
lib,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "fflinuxprint";
version = "1.1.3-4";
src = fetchurl {
url = "https://support-fb.fujifilm.com/driver_downloads/fflinuxprint_${finalAttrs.version}_amd64.deb";
hash = "sha256-Q0qB4gvEWa10KGt6SngVqraxFePxIQ62nTrFZ44vyrU=";
curlOpts = "--user-agent Mozilla/5.0"; # HTTP 410 otherwise
};
nativeBuildInputs = [
autoPatchelfHook
dpkg
];
buildInputs = [
cups
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/cups/model
mv {etc,usr/lib} $out
mv usr/share/ppd/fujifilm/* $out/share/cups/model
runHook postInstall
'';
meta = {
description = "FujiFILM Linux Printer Driver";
homepage = "https://support-fb.fujifilm.com";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ jaduff ];
platforms = lib.platforms.linux;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})

View File

@@ -0,0 +1,38 @@
{
lib,
appimageTools,
fetchurl,
}:
let
pname = "fflogs";
version = "8.17.68";
src = fetchurl {
url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
hash = "sha256-HnMTTzn6YMTYEXvtwU7R3K9JWG1ipb3RS/Oa46bzqJQ=";
};
extracted = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
mkdir -p $out/share/applications
cp -r ${extracted}/usr/share/icons $out/share/
chmod -R +w $out/share/
test ! -e $out/share/icons/hicolor/0x0 # check for regression of https://github.com/electron-userland/electron-builder/issues/5294
cp ${extracted}/fflogs.desktop $out/share/applications/
sed -i 's@^Exec=AppRun --no-sandbox@Exec=fflogs@g' $out/share/applications/fflogs.desktop
'';
meta = with lib; {
description = "Application for uploading Final Fantasy XIV combat logs to fflogs.com";
homepage = "https://www.fflogs.com/client/download";
downloadPage = "https://github.com/RPGLogs/Uploaders-fflogs/releases/latest";
license = licenses.unfree; # no license listed
mainProgram = "fflogs";
platforms = platforms.linux;
maintainers = with maintainers; [ keysmashes ];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
};
}

View File

@@ -0,0 +1,29 @@
{
ffmpeg_7-headless,
lib,
fetchFromGitHub,
}:
(ffmpeg_7-headless.override {
version = "7.0.1-unstable-2024-07-10";
withCudaLLVM = true;
source = fetchFromGitHub {
owner = "livepeer";
repo = "FFmpeg";
rev = "d9751c73e714b01b363483db358b1ea8022c9bea"; # From branch n*-livepeer
hash = "sha256-IJVpb/k+obGFD9uOoIVHCd2ZiGL3CA4CV3D+Q9vMbQM=";
};
}).overrideAttrs
(old: {
pname = "ffmpeg-livepeer";
meta = {
inherit (old.meta)
license
mainProgram
pkgConfigModules
platforms
;
maintainers = with lib.maintainers; [ bot-wxt1221 ];
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
python3Packages,
fetchPypi,
ffmpeg,
}:
python3Packages.buildPythonApplication rec {
pname = "ffmpeg-normalize";
version = "1.31.3";
format = "pyproject";
src = fetchPypi {
inherit version;
pname = "ffmpeg_normalize";
hash = "sha256-sewDSBUX6gCZSIHeRtpx5fQGtOKN8OWZKrtCF2bgI9Y=";
};
build-system = with python3Packages; [
setuptools
];
dependencies =
with python3Packages;
[
colorlog
ffmpeg-progress-yield
]
++ [ ffmpeg ];
checkPhase = ''
runHook preCheck
$out/bin/ffmpeg-normalize --help > /dev/null
runHook postCheck
'';
meta = {
description = "Normalize audio via ffmpeg";
homepage = "https://github.com/slhck/ffmpeg-normalize";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
luftmensch-luftmensch
prusnak
];
mainProgram = "ffmpeg-normalize";
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
ffmpeg-headless,
libpng,
libjpeg,
}:
stdenv.mkDerivation {
pname = "ffmpegthumbnailer";
version = "unstable-2024-01-04";
src = fetchFromGitHub {
owner = "dirkvdb";
repo = "ffmpegthumbnailer";
rev = "1b5a77983240bcf00a4ef7702c07bcd8f4e5f97c";
hash = "sha256-7SPRQMPgdvP7J3HCf7F1eXxZjUH5vCYZ9UOwTUFMLp0=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
ffmpeg-headless
libpng
libjpeg
];
cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ];
# https://github.com/dirkvdb/ffmpegthumbnailer/issues/215
postPatch = ''
substituteInPlace libffmpegthumbnailer.pc.in \
--replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
'';
postInstall = ''
substituteInPlace $out/share/thumbnailers/ffmpegthumbnailer.thumbnailer \
--replace-fail '=ffmpegthumbnailer' "=$out/bin/ffmpegthumbnailer"
'';
meta = with lib; {
description = "Lightweight video thumbnailer";
longDescription = "FFmpegthumbnailer is a lightweight video
thumbnailer that can be used by file managers to create thumbnails
for your video files. The thumbnailer uses ffmpeg to decode frames
from the video files, so supported videoformats depend on the
configuration flags of ffmpeg.
This thumbnailer was designed to be as fast and lightweight as possible.
The only dependencies are ffmpeg and libpng/libjpeg.
";
homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
license = licenses.gpl2Plus;
maintainers = [ maintainers.jagajaga ];
platforms = platforms.unix;
mainProgram = "ffmpegthumbnailer";
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
ffmpeg,
zlib,
}:
stdenv.mkDerivation rec {
pname = "ffms";
version = "5.0";
src = fetchFromGitHub {
owner = "FFMS";
repo = "ffms2";
rev = version;
sha256 = "sha256-Ildl8hbKSFGh4MUBK+k8uYMDrOZD9NSMdPAWIIaGy4E=";
};
env.NIX_CFLAGS_COMPILE = "-fPIC";
nativeBuildInputs = [
autoreconfHook
pkg-config
];
preAutoreconf = ''
mkdir src/config
'';
buildInputs = [
ffmpeg
zlib
];
# ffms includes a built-in vapoursynth plugin, see:
# https://github.com/FFMS/ffms2#avisynth-and-vapoursynth-plugin
postInstall = ''
mkdir $out/lib/vapoursynth
ln -s $out/lib/libffms2${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/vapoursynth/libffms2${stdenv.hostPlatform.extensions.sharedLibrary}
'';
meta = with lib; {
homepage = "https://github.com/FFMS/ffms2";
description = "FFmpeg based source library for easy frame accurate access";
mainProgram = "ffmsindex";
license = licenses.mit;
maintainers = with maintainers; [ wegank ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
python3Packages,
fetchPypi,
}:
python3Packages.buildPythonApplication rec {
pname = "ffpb";
version = "0.4.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
sha256 = "7eVqbLpMHS1sBw2vYS4cTtyVdnnknGtEI8190VlXflk=";
};
build-system = [ python3Packages.setuptools ];
dependencies = [ python3Packages.tqdm ];
# tests require working internet connection
doCheck = false;
meta = {
description = "FFmpeg progress formatter to display a nice progress bar and an adaptative ETA timer";
homepage = "https://github.com/althonos/ffpb";
changelog = "https://github.com/althonos/ffpb/blob/master/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ CaptainJawZ ];
mainProgram = "ffpb";
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
rustPlatform,
pkg-config,
openssl,
installShellFiles,
x11Support ? stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isBSD,
xclip ? null,
xsel ? null,
preferXsel ? false, # if true and xsel is non-null, use it instead of xclip
}:
let
usesX11 = stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isBSD;
in
assert (x11Support && usesX11) -> xclip != null || xsel != null;
rustPlatform.buildRustPackage rec {
pname = "ffsend";
version = "0.2.77";
src = fetchFromGitLab {
owner = "timvisee";
repo = "ffsend";
tag = "v${version}";
hash = "sha256-qq1nLNe4ddcsFJZaGfNQbNtqchz6tPh1kpEH/oDW3jk=";
};
cargoHash = "sha256-DQcuyp61r0y9fi8AV33qxN2cOrl0M8q4/VoXuV47gxQ=";
cargoPatches = [
# https://gitlab.com/timvisee/ffsend/-/merge_requests/44
(fetchpatch {
name = "rust-1.87.0-compat.patch";
url = "https://gitlab.com/timvisee/ffsend/-/commit/29eb167d4367929a2546c20b3f2bbf890b63c631.patch";
hash = "sha256-BxJ+0QJP2fzQT1X3BZG1Yy9V+csIEk8xocUKSBgdG9M=";
})
];
nativeBuildInputs = [
installShellFiles
]
++ lib.optionals stdenv.hostPlatform.isLinux [ pkg-config ];
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ openssl ];
preBuild = lib.optionalString (x11Support && usesX11) (
if preferXsel && xsel != null then
''
export XSEL_PATH="${xsel}/bin/xsel"
''
else
''
export XCLIP_PATH="${xclip}/bin/xclip"
''
);
postInstall = ''
installShellCompletion contrib/completions/ffsend.{bash,fish} --zsh contrib/completions/_ffsend
'';
# There's also .elv and .ps1 completion files but I don't know where to install those
meta = {
description = "Easily and securely share files from the command line. A fully featured Firefox Send client";
longDescription = ''
Easily and securely share files and directories from the command line through a safe, private
and encrypted link using a single simple command. Files are shared using the Send service and
may be up to 2GB. Others are able to download these files with this tool, or through their
web browser.
'';
homepage = "https://gitlab.com/timvisee/ffsend";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ equirosa ];
platforms = lib.platforms.unix;
mainProgram = "ffsend";
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
python3,
fetchFromGitHub,
ffmpeg,
}:
python3.pkgs.buildPythonApplication rec {
pname = "ffsubsync";
version = "0.4.30";
pyproject = true;
src = fetchFromGitHub {
owner = "smacke";
repo = "ffsubsync";
tag = version;
hash = "sha256-Px4WaeFn6SS6VUsm0bAKmdVtqQzXX12PRKO1n6UNxdM=";
};
build-system = with python3.pkgs; [ setuptools ];
dependencies = with python3.pkgs; [
auditok
charset-normalizer
faust-cchardet
ffmpeg-python
numpy
pysubs2
chardet
rich
setuptools
six
srt
tqdm
typing-extensions
webrtcvad
];
nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
pythonImportsCheck = [ "ffsubsync" ];
makeWrapperArgs = [
"--prefix"
"PATH"
":"
"${ffmpeg}/bin"
];
meta = {
homepage = "https://github.com/smacke/ffsubsync";
description = "Automagically synchronize subtitles with video";
license = lib.licenses.mit;
maintainers = [ ];
mainProgram = "ffsubsync";
};
}

View File

@@ -0,0 +1,30 @@
{
stdenv,
lib,
cmake,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "ffts";
version = "0-unstable-2019-03-19";
src = fetchFromGitHub {
owner = "linkotec";
repo = "ffts";
rev = "2c8da4877588e288ff4cd550f14bec2dc7bf668c";
hash = "sha256-Cj0n7fwFAu6+3ojgczL0Unobdx/XzGNFvNVMXdyHXE4=";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DENABLE_SHARED=ON" ];
meta = {
description = "Fastest Fourier Transform in the South";
homepage = "https://github.com/linkotec/ffts";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ bgamari ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,105 @@
{
fetchurl,
fetchpatch,
stdenv,
lib,
gfortran,
perl,
llvmPackages,
precision ? "double",
enableMpi ? false,
mpi,
withDoc ? stdenv.cc.isGNU,
testers,
}:
assert lib.elem precision [
"single"
"double"
"long-double"
"quad-precision"
];
stdenv.mkDerivation (finalAttrs: {
pname = "fftw-${precision}";
version = "3.3.10";
src = fetchurl {
urls = [
"https://fftw.org/fftw-${finalAttrs.version}.tar.gz"
"ftp://ftp.fftw.org/pub/fftw/fftw-${finalAttrs.version}.tar.gz"
];
sha256 = "sha256-VskyVJhSzdz6/as4ILAgDHdCZ1vpIXnlnmIVs0DiZGc=";
};
patches = [
(fetchpatch {
name = "remove_missing_FFTW3LibraryDepends.patch";
url = "https://github.com/FFTW/fftw3/pull/338/commits/f69fef7aa546d4477a2a3fd7f13fa8b2f6c54af7.patch";
hash = "sha256-lzX9kAHDMY4A3Td8necXwYLcN6j8Wcegi3A7OIECKeU=";
})
];
outputs = [
"out"
"dev"
"man"
]
++ lib.optional withDoc "info"; # it's dev-doc only
outputBin = "dev"; # fftw-wisdom
nativeBuildInputs = [ gfortran ];
buildInputs =
lib.optionals stdenv.cc.isClang [
# TODO: This may mismatch the LLVM version sin the stdenv, see #79818.
llvmPackages.openmp
]
++ lib.optional enableMpi mpi;
configureFlags = [
"--enable-shared"
"--enable-threads"
"--enable-openmp"
]
++ lib.optional (precision != "double") "--enable-${precision}"
# https://www.fftw.org/fftw3_doc/SIMD-alignment-and-fftw_005fmalloc.html
# FFTW will try to detect at runtime whether the CPU supports these extensions
++ lib.optional (
stdenv.hostPlatform.isx86_64 && (precision == "single" || precision == "double")
) "--enable-sse2 --enable-avx --enable-avx2 --enable-avx512 --enable-avx128-fma"
++ lib.optional enableMpi "--enable-mpi"
# doc generation causes Fortran wrapper generation which hard-codes gcc
++ lib.optional (!withDoc) "--disable-doc";
# fftw builds with -mtune=native by default
postPatch = ''
substituteInPlace configure --replace "-mtune=native" "-mtune=generic"
'';
enableParallelBuilding = true;
nativeCheckInputs = [ perl ];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; {
description = "Fastest Fourier Transform in the West library";
homepage = "https://www.fftw.org/";
license = licenses.gpl2Plus;
maintainers = [ ];
pkgConfigModules = [
{
"single" = "fftw3f";
"double" = "fftw3";
"long-double" = "fftw3l";
"quad-precision" = "fftw3q";
}
.${precision}
];
platforms = platforms.unix;
# quad-precision requires libquadmath from gfortran, but libquadmath is not supported on aarch64
badPlatforms = lib.optionals (precision == "quad-precision") platforms.aarch64;
};
})

View File

@@ -0,0 +1,48 @@
{
lib,
buildGoModule,
fetchFromGitHub,
fetchpatch,
}:
buildGoModule rec {
pname = "ffuf";
version = "2.1.0";
src = fetchFromGitHub {
owner = "ffuf";
repo = "ffuf";
tag = "v${version}";
hash = "sha256-+wcNqQHtB8yCLiJXMBxolCWsYZbBAsBGS1hs7j1lzUU=";
};
vendorHash = "sha256-SrC6Q7RKf+gwjJbxSZkWARw+kRtkwVv1UJshc/TkNdc=";
patches = [
# Fix CSV test, https://github.com/ffuf/ffuf/pull/731
(fetchpatch {
name = "fix-csv-test.patch";
url = "https://github.com/ffuf/ffuf/commit/7f2aae005ad73988a1fa13c1c33dab71f4ae5bbd.patch";
hash = "sha256-/v9shGICmsbFfEJe4qBkBHB9PVbBlrjY3uFmODxHu9M=";
})
];
ldflags = [
"-w"
"-s"
];
meta = {
description = "Tool for web fuzzing";
mainProgram = "ffuf";
longDescription = ''
FFUF, or Fuzz Faster you Fool is an open source web fuzzing tool,
intended for discovering elements and content within web applications
or web servers.
'';
homepage = "https://github.com/ffuf/ffuf";
changelog = "https://github.com/ffuf/ffuf/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}