Name: quit Version: 3.4 Release: 1%{?dist} Summary: Quantitative Imaging Tools for MRI data processing License: MPL-2.0 URL: https://github.com/spinicist/QUIT Source0: %{url}/archive/v%{version}/QUIT-%{version}.tar.gz # Header-only argument parser library (not packaged in Fedora) Source1: https://github.com/Taywee/args/archive/refs/tags/6.4.8.tar.gz#/args-6.4.8.tar.gz # CMake find module for bundled args library Source2: Findargs.cmake BuildRequires: cmake >= 3.12 BuildRequires: gcc-c++ BuildRequires: make BuildRequires: InsightToolkit5-devel >= 5.3.0 BuildRequires: eigen3-devel BuildRequires: ceres-solver-devel BuildRequires: suitesparse-devel BuildRequires: blas-devel BuildRequires: lapack-devel BuildRequires: fmt-devel BuildRequires: json-devel Requires: InsightToolkit5%{?_isa} Provides: bundled(args) = 6.4.8 Provides: bundled(NumericalIntegration) %description QUIT (QUantitative Imaging Tools) is a collection of programs for processing quantitative MRI data, including DESPOT, relaxometry, magnetization transfer, perfusion, susceptibility mapping, and more. All tools are accessed via the single 'qi' command with subcommands, similar to git or bart. QUIT processes NIfTI format neuroimaging files and accepts sequence parameters via JSON input. %prep %autosetup -n QUIT-%{version} # Install bundled args header tar xf %{SOURCE1} install -p -m 0644 args-6.4.8/args.hxx External/include/ # Install cmake find module for args install -p -m 0644 %{SOURCE2} cmake/Findargs.cmake # fmt v11 requires explicit formatter specializations for types with operator<< # (FMT_DEPRECATED_OSTREAM was removed in fmt v11) sed -i '/FMT_DEPRECATED_OSTREAM/d' Source/Core/Macro.h Source/Core/Log.h cat > Source/Core/FmtITK.h << 'FMTEOF' #pragma once #include "fmt/ostream.h" #include "itkSize.h" #include "itkVector.h" #include "itkPoint.h" #include "itkIndex.h" #include template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; // Eigen types formatted via operator<< (transpose, array, matrix expressions) template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; FMTEOF sed -i '/#include "itkVectorImage.h"/a #include "FmtITK.h"' Source/Core/ImageTypes.h %build # Suppress GCC 15 -Wtemplate-body diagnostics in QUIT's own template code export CXXFLAGS="%{optflags} -Wno-template-body" %cmake \ -DCMAKE_MODULE_PATH:PATH="%{_builddir}/QUIT-%{version}/cmake" \ -DExternal_Include_DIR:PATH="%{_builddir}/QUIT-%{version}/External/include" \ -DBUILD_PARMESAN:BOOL=OFF %cmake_build %install %cmake_install %files %license LICENSE.txt %doc README.md CHANGELOG.md %{_bindir}/qi %changelog * Mon Mar 30 2026 Morgan Hough - 3.4-1 - Initial package for Fedora