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 "itkCovariantVector.h" #include "itkPoint.h" #include "itkIndex.h" #include "itkFixedArray.h" #include "itkImageRegion.h" #include "itkVariableLengthVector.h" #include "itkMatrix.h" #include "itkAffineTransform.h" #include // ITK types formatted via operator<< 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 {}; 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 {}; template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; // Eigen types formatted via operator<< template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; template struct fmt::formatter> : fmt::ostream_formatter {}; // QUIT custom types namespace QI { class FilterKernel; } template <> struct fmt::formatter : fmt::ostream_formatter {}; FMTEOF sed -i '/#include "itkVectorImage.h"/a #include "FmtITK.h"' Source/Core/ImageTypes.h # Fix SSFPSequence formatter for fmt v11 (format() must be const) sed -i 's/FormatContext &ctx) {/FormatContext \&ctx) const {/' Source/Sequences/SSFPSequence.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