# Newest tag is release-1.6.80; master has moved past it and is what the ACES # tree builds from. configure.ac still says 1.6.7. %global commit 166303dcfd95f83c54a1fdcdab1a63e6714f349b %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global date 20120308 Name: conglomerate Version: 1.6.80 Release: 1.%{date}git%{shortcommit}%{?dist} Summary: MNI/BIC tools for MINC volumes and geometric objects # COPYING: the classic MNI/BIC permissive notice, David MacDonald 1993-1995. # docs/civet-licensing.md (tier 1). License: HPND URL: https://github.com/aces/conglomerate Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz # m4/ is a git submodule (BIC-MNI/mni-acmacros) and absent from the archive. Source1: https://github.com/BIC-MNI/mni-acmacros/archive/master.tar.gz#/mni-acmacros.tar.gz # Maps the pre-VIO_ volume_io spellings this code uses onto current libminc. Source2: mni-volume-io-compat.h BuildRequires: autoconf BuildRequires: automake BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: libtool BuildRequires: make BuildRequires: perl-interpreter # %%check syntax-checks the installed Perl drivers (compute_icbm_vols and # friends), which use these at compile time. BuildRequires: perl-MNI BuildRequires: perl(Getopt::Tabular) BuildRequires: bicpl-devel BuildRequires: libminc-devel BuildRequires: netcdf-devel BuildRequires: zlib-devel # The driver scripts are MNI::Startup Perl and shell, and run the MINC tools. Requires: bicpl Requires: minc-tools Requires: perl-MNI Requires: perl(Getopt::Tabular) %description conglomerate is the MNI/BIC collection of command line tools for MINC volumes and for the .obj geometric objects the surface pipelines produce: volume arithmetic and statistics, tag and label handling, surface measurement, resampling, smoothing and format conversion. It provides 132 programs, among them compute_icbm_vols, which CIVET uses to report tissue volumes, and the surface tools the cortical thickness steps depend on. %prep %autosetup -n %{name}-%{commit} # Supply the mni-acmacros submodule that the tarball cannot carry. mkdir -p m4 tar -xf %{SOURCE1} --strip-components=1 -C m4 test -f m4/smr_WITH_BUILD_PATH.m4 %build # configure.ac has AC_PROG_CXX commented out (line 15) while Makefile.am builds # two C++ programs, mincdefrag and mincskel. Current automake refuses that: # Makefile.am: error: C++ source seen but 'CXX' is undefined # Older automake let it slide by falling back to the C compiler. sed -i 's/^dnl AC_PROG_CXX$/AC_PROG_CXX/' configure.ac grep -q '^AC_PROG_CXX$' configure.ac autoreconf -ifv -I m4 # Fedora's libminc names its volume_io library libminc_io, not libvolume_io2. sed -i 's/volume_io2/minc_io/g' configure grep -q 'minc_io' configure cp %{SOURCE2} compat_minc.h # 239 sources include . That header was part of # volume_io's internals and libminc 2.x does not install it; everything those # files need is in the public . Provide it as a one-line shim on # the include path rather than editing 239 files -- and so the diff stays # reviewable if upstream ever adopts it. mkdir -p compat/volume_io cat > compat/volume_io/internal_volume_io.h <<'SHIM' /* libminc 2.x installs no volume_io/internal_volume_io.h; the public header carries the same declarations for every use in this package. */ #ifndef MNI_COMPAT_INTERNAL_VOLUME_IO_H #define MNI_COMPAT_INTERNAL_VOLUME_IO_H #include #endif SHIM # Mostly C, and it indexes coordinates as X, Y, Z, so the axis macros are # wanted here. They are opt-in because they rewrite any identifier of those # names; the C++ files below are compiled without them for that reason. export CFLAGS="%{optflags} -std=gnu17 -I$(pwd)/compat -I%{_includedir}/libminc \ -Wno-error=implicit-function-declaration -Wno-error=implicit-int \ -Wno-error=incompatible-pointer-types -Wno-error=int-conversion \ -include $(pwd)/compat_minc.h -DMNI_COMPAT_AXIS_MACROS" export CXXFLAGS="%{optflags} -std=gnu++17 -fpermissive -I$(pwd)/compat -I%{_includedir}/libminc \ -include $(pwd)/compat_minc.h" %configure \ --with-minc2 \ --with-build-path=%{_prefix} \ LIBS="-lbicpl -lminc_io -lminc2 -lnetcdf -lhdf5 -lz -lm" %make_build %install %make_install find %{buildroot} -name '*.la' -delete %check # No test suite upstream. Assert the full program set is present -- with 132 # binaries a missing one is easy to miss -- and syntax-check the Perl drivers, # which are generated by sed and would otherwise ship broken and silent. n=$(ls -1 %{buildroot}%{_bindir} | wc -l) test "$n" -eq 141 || { echo "expected 141 programs in bindir, found $n"; exit 1; } echo "141 programs installed" for f in %{buildroot}%{_bindir}/*; do # `grep -q ... && perl -c` would abort the whole script under set -e the # first time grep does not match, i.e. at the first compiled binary. if head -1 "$f" | grep -q '^#!.*perl'; then %{__perl} -c "$f" fi done %files %license COPYING %doc AUTHORS ChangeLog NEWS README TODO %{_bindir}/add_labels %{_bindir}/apply_sphere_transform %{_bindir}/autocrop_volume %{_bindir}/average_voxels %{_bindir}/blur_surface %{_bindir}/box_filter_volume %{_bindir}/box_filter_volume_nd %{_bindir}/chamfer_volume %{_bindir}/chop_tags %{_bindir}/clamp_volume %{_bindir}/classify_sulcus %{_bindir}/clean_surface_labels %{_bindir}/clip_tags %{_bindir}/close_surface %{_bindir}/cluster_volume %{_bindir}/coalesce_lines %{_bindir}/compare_left_right %{_bindir}/compare_left_right_groups %{_bindir}/compare_lengths %{_bindir}/composite_images %{_bindir}/composite_minc_images %{_bindir}/composite_volumes %{_bindir}/compute_bounding_view %{_bindir}/compute_resels %{_bindir}/concat_images %{_bindir}/contour_slice %{_bindir}/convex_hull %{_bindir}/count_thresholded_volume %{_bindir}/create_2d_sheet %{_bindir}/create_2d_surface %{_bindir}/create_box %{_bindir}/create_four_volumes %{_bindir}/create_label_map %{_bindir}/create_landmark_full_volume %{_bindir}/create_mahalanobis %{_bindir}/create_surface_interpolation_lsq %{_bindir}/create_warping_points %{_bindir}/diff_mahalanobis %{_bindir}/dilate_volume %{_bindir}/dilate_volume_completely %{_bindir}/dim_image %{_bindir}/dump_deformation_distances %{_bindir}/dump_points_to_tag_file %{_bindir}/dump_rms %{_bindir}/dump_transform %{_bindir}/dump_uv %{_bindir}/evaluate %{_bindir}/extract_largest_line %{_bindir}/extract_tag_slice %{_bindir}/fill_sulci %{_bindir}/find_buried_surface %{_bindir}/find_image_bounding_box %{_bindir}/find_peaks %{_bindir}/find_surface_distances %{_bindir}/find_tag_outliers %{_bindir}/find_vertex %{_bindir}/find_volume_centroid %{_bindir}/fit_3d %{_bindir}/fit_curve %{_bindir}/fit_curve2 %{_bindir}/flatten_polygons %{_bindir}/flatten_sheet %{_bindir}/flatten_sheet3 %{_bindir}/flatten_to_sphere %{_bindir}/flatten_to_sphere2 %{_bindir}/flip_tags %{_bindir}/flip_volume %{_bindir}/f_prob %{_bindir}/gaussian_blur_peaks %{_bindir}/get_tic %{_bindir}/group_diff %{_bindir}/histogram_volume %{_bindir}/intensity_statistics %{_bindir}/interpolate_tags %{_bindir}/labels_to_rgb %{_bindir}/label_sulci %{_bindir}/lookup_labels %{_bindir}/make_diff_volume %{_bindir}/make_geodesic_volume %{_bindir}/make_gradient_volume %{_bindir}/make_grid_lines %{_bindir}/make_line_links %{_bindir}/make_slice %{_bindir}/make_sphere_transform %{_bindir}/make_surface_bitlist %{_bindir}/map_colours_to_sphere %{_bindir}/map_sheets %{_bindir}/map_surface_to_sheet %{_bindir}/marching_cubes %{_bindir}/mask_values %{_bindir}/mask_volume %{_bindir}/match_tags %{_bindir}/mincdefrag %{_bindir}/mincmask %{_bindir}/mincskel %{_bindir}/minc_to_rgb %{_bindir}/minctotag %{_bindir}/normalize_pet %{_bindir}/place_images %{_bindir}/plane_polygon_intersect %{_bindir}/preprocess_segmentation %{_bindir}/print_2d_coords %{_bindir}/print_all_label_bounding_boxes %{_bindir}/print_all_labels %{_bindir}/print_axis_angles %{_bindir}/print_volume_value %{_bindir}/print_world_value %{_bindir}/print_world_values %{_bindir}/random_warp %{_bindir}/reparameterize_line %{_bindir}/rgb_to_minc %{_bindir}/scale_minc_image %{_bindir}/scan_lines_to_polygons %{_bindir}/scan_object_to_volume %{_bindir}/segment_probabilities %{_bindir}/spherical_resample %{_bindir}/stats_tag_file %{_bindir}/subsample_volume %{_bindir}/surface_mask %{_bindir}/surface_mask2 %{_bindir}/tags_to_spheres %{_bindir}/tagtominc %{_bindir}/tag_volume %{_bindir}/threshold_volume %{_bindir}/transform_objects %{_bindir}/transform_tags %{_bindir}/transform_volume %{_bindir}/trimesh_resample %{_bindir}/trimesh_set_points %{_bindir}/trimesh_to_polygons %{_bindir}/two_surface_resample %{_bindir}/volume_object_evaluate %{_bindir}/compute_icbm_vols %{_bindir}/mritotal_suppress %{_bindir}/multispectral_stx_registration %{_bindir}/nlfit_smr %{_bindir}/regional_thickness %{_bindir}/remap_to_lobes %{_bindir}/smooth_mask %{_bindir}/sphere_resample_obj %{_bindir}/suppress_fat %changelog * Thu Sep 24 2026 Morgan Hough - 1.6.80-1.20120308git166303d - Initial package, from the tip of upstream master. CIVET/MNI tier 1 (docs/civet-licensing.md); the seventh of the eight permissive components. The 132 binaries are listed explicitly rather than globbed: a glob hides a program that silently stops being built.