228 lines
7.2 KiB
RPMSpec
228 lines
7.2 KiB
RPMSpec
%global octpkg iso2mesh
|
|
|
|
Name: octave-%{octpkg}
|
|
Version: 1.9.6
|
|
Release: 11%{?dist}
|
|
Summary: A 3D surface and volumetric mesh generator for MATLAB/Octave
|
|
# Main package: GPLv3+
|
|
# Meshfix: GPLv2+
|
|
# JMeshLib: GPLv2+
|
|
# Tetgen: AGPLv3+
|
|
License: GPLv3+ and GPLv2+ and AGPLv3+
|
|
|
|
URL: http://iso2mesh.sf.net
|
|
# the following utilities are called internally by iso2mesh (stored under a private folder),
|
|
# this is needed for making outputs reproducible
|
|
Source0: https://github.com/fangq/iso2mesh/archive/v%{version}/%{octpkg}-%{version}.tar.gz
|
|
Source1: https://github.com/fangq/cork/archive/v0.9.1/cork-0.9.1.tar.gz
|
|
Source2: https://github.com/fangq/meshfix/archive/v1.2.2/meshfix-1.2.2.tar.gz
|
|
Source3: http://ftp.mcs.anl.gov/pub/petsc/externalpackages/tetgen1.5.1.tar.gz
|
|
|
|
# Policy CMP0064 is not set: Support new TEST if() operator.
|
|
# See also https://github.com/CGAL/cgal/issues/5857
|
|
Patch0: iso2mesh-1.9.6-CMakeCMP0064.patch
|
|
|
|
# Fix the incorrect detection of Boost version
|
|
# > -- NOTICE: This program requires Boost >= 1.34.1, and will not be compiled.
|
|
Patch1: iso2mesh-1.9.6-recent_Boost_version.patch
|
|
Patch2: octave-iso2mesh-c99.patch
|
|
|
|
ExcludeArch: armv7hl
|
|
BuildRequires: make
|
|
BuildRequires: cmake CGAL-devel SuperLU-devel gcc-c++ zlib-devel octave-devel
|
|
|
|
%if 0%{?fedora} >=32
|
|
Requires: octave mpfr-devel boost-devel SuperLU octave-jsonlab octave-jnifti octave-zmat
|
|
%else
|
|
Requires: octave CGAL SuperLU octave-jsonlab octave-jnifti octave-zmat
|
|
%endif
|
|
|
|
Requires(post): octave
|
|
Requires(postun): octave
|
|
|
|
%description
|
|
Iso2Mesh is a MATLAB/Octave-based mesh generation toolbox,
|
|
designed for easy creation of high quality surface and
|
|
tetrahedral meshes from 3D volumetric images. It contains
|
|
a rich set of mesh processing scripts/programs, working
|
|
either independently or interacting with external free
|
|
meshing utilities. Iso2Mesh toolbox can directly convert
|
|
a 3D image stack, including binary, segmented or gray-scale
|
|
images such as MRI or CT scans, into quality volumetric
|
|
meshes. This makes it particularly suitable for multi-modality
|
|
medical imaging data analysis and multi-physics modeling.
|
|
Iso2Mesh is cross-platform and is compatible with both MATLAB
|
|
and GNU Octave.
|
|
|
|
%package -n %{octpkg}-demos
|
|
Summary: Example datasets and scripts for the Iso2Mesh toolbox
|
|
BuildArch: noarch
|
|
Requires: octave octave-%{octpkg}
|
|
Recommends: %{octpkg}-demos
|
|
|
|
%description -n %{octpkg}-demos
|
|
This package contains the demo script and sample datasets for octave-%{octpkg}.
|
|
|
|
%prep
|
|
%setup -q -b 1 -n %{octpkg}-%{version}
|
|
%setup -q -T -D -b 2 -n meshfix-1.2.2
|
|
%setup -q -T -D -b 3 -n %{octpkg}-%{version}
|
|
%patch -P 0 -z .bak -p1
|
|
%patch -P 1 -z .bak -p1
|
|
rm -rf tools/cork
|
|
rm -rf tools/meshfix
|
|
rm -rf tools/tetgen
|
|
mv ../cork-0.9.1 tools/cork
|
|
mv ../meshfix-1.2.2 tools/meshfix
|
|
mv ../tetgen1.5.1 tools/tetgen
|
|
%patch -P 2 -p1
|
|
rm -rf bin/*.mex* bin/*.exe bin/*.dll
|
|
|
|
cp COPYING.txt COPYING
|
|
|
|
mkdir -p inst/
|
|
|
|
rm -rf base64decode base64encode fast_match_bracket gzipdecode gzipencode \
|
|
jdatadecode jdataencode jnifticreate loadjnifti loadjson loadmsgpack \
|
|
loadnifti loadubjson lz4decode lz4encode lz4hcdecode lz4hcencode lzipdecode \
|
|
lzipencode lzmadecode lzmaencode match_bracket nestbracket2dim nifticreate \
|
|
nii2jnii niicodemap niiformat readnifti savebnii savejnifti savejnii \
|
|
savemsgpack savenifti saveubjson zlibdecode zlibencode
|
|
|
|
mv *.m inst/
|
|
mv img2mesh.fig inst/
|
|
|
|
# Fix jmeshlib build flags
|
|
sed -e "s|-Wall|%{optflags}|;s|^LIBS = |&$RPM_LD_FLAGS |" \
|
|
-i tools/meshfix/contrib/JMeshLib/test/Makefile
|
|
|
|
# Link FlexiBLAS instead of BLAS
|
|
sed -e "s| blas| flexiblas|" -i tools/meshfix/CMakeLists.txt
|
|
|
|
# Fix tetgen build flags
|
|
sed -e "s|^\(CXXFLAGS = \).*|\1%{optflags} $RPM_LD_FLAGS|" \
|
|
-e "s|-O0|%{optflags} $RPM_LD_FLAGS|" \
|
|
-i tools/tetgen/makefile
|
|
|
|
%build
|
|
%set_build_flags
|
|
%if 0%{?__isa_bits} == 32
|
|
# Reduce the debuginfo level to avoid virtual memory exhaustion
|
|
CXXFLAGS="${CXXFLAGS-} -g1"
|
|
%endif
|
|
pushd tools
|
|
# can't use make_build macro below because parallel make with CGAL exhausts
|
|
# vm's memory and crash the building process, use sequential make instead
|
|
make USERCCFLAGS="%{optflags}"
|
|
popd
|
|
pushd bin
|
|
ln -s tetgen1.5 tetgen
|
|
popd
|
|
|
|
mkdir inst/bin
|
|
pushd bin
|
|
for exec in *; do
|
|
ln -s %{_libexecdir}/%{octpkg}/$exec ../inst/bin/$exec
|
|
done
|
|
popd
|
|
%octave_pkg_build
|
|
|
|
%if 0%{?fedora} <=30
|
|
%global octave_tar_suffix any-none
|
|
%endif
|
|
|
|
%install
|
|
%octave_pkg_install
|
|
install -m 0755 -vd %{buildroot}%{_libexecdir}/%{octpkg}
|
|
install -m 0755 -vp bin/* %{buildroot}%{_libexecdir}/%{octpkg}/
|
|
|
|
%post
|
|
%octave_cmd pkg rebuild
|
|
|
|
%preun
|
|
%octave_pkg_preun
|
|
|
|
%postun
|
|
%octave_cmd pkg rebuild
|
|
|
|
%files
|
|
%license COPYING.txt
|
|
%doc README.txt
|
|
%doc Content.txt
|
|
%doc AUTHORS.txt
|
|
%doc ChangeLog.txt
|
|
%dir %{octpkgdir}
|
|
%dir %{octpkgdir}/doc
|
|
%dir %{octpkgdir}/bin
|
|
%{_libexecdir}/%{octpkg}
|
|
%{octpkgdir}/doc/*
|
|
%{octpkgdir}/bin/*
|
|
%{octpkgdir}/*.m
|
|
%{octpkgdir}/*.fig
|
|
%doc %{octpkgdir}/doc-cache
|
|
%{octpkgdir}/packinfo
|
|
|
|
%files -n %{octpkg}-demos
|
|
%license COPYING.txt
|
|
%doc sample
|
|
|
|
%changelog
|
|
* Fri Apr 14 2023 Florian Weimer <fweimer@redhat.com> - 1.9.6-11
|
|
- Port to C99
|
|
|
|
* Sun Apr 09 2023 Orion Poplawski <orion@nwra.com> - 1.9.6-10
|
|
- Rebuild for octave 8.1.0
|
|
|
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.6-9
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
|
|
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.6-8
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
|
|
|
* Wed Jun 01 2022 Orion Poplawski <orion@nwra.com> - 1.9.6-7
|
|
- Rebuild for octave 7.1
|
|
|
|
* Fri May 06 2022 Iñaki Úcar <iucar@fedoraproject.org> - 1.9.6-6
|
|
- https://fedoraproject.org/wiki/Changes/FlexiBLAS_as_BLAS/LAPACK_manager
|
|
|
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.6-5
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
|
|
|
* Sat Oct 30 2021 Antonio Trande <sagitter@fedoraproject.org> - 1.9.6-3
|
|
- Rebuild for SuperLU-5.3.0
|
|
|
|
* Thu Jul 22 2021 Qianqian Fang <fangqq@gmail.com> - 1.9.6-3
|
|
- Apply makefile patch by Laurent Rineau, fix CGAL build error on F35, fix #1917433
|
|
|
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.6-2
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
|
|
* Fri Sep 04 2020 Qianqian Fang <fangqq@gmail.com> - 1.9.6-1
|
|
- New upstream release 1.9.6
|
|
|
|
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.1-7
|
|
- Fix cgal build error on F34
|
|
- Second attempt - Rebuilt for
|
|
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.1-6
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
|
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.1-5
|
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
|
|
* Mon Nov 25 2019 Jerry James <loganjerry@gmail.com> - 1.9.1-4
|
|
- Rebuild for mpfr 4
|
|
- Use Fedora build flags when building jmeshlib and tetgen
|
|
|
|
* Fri Oct 11 2019 Qianqian Fang <fangqq@gmail.com> - 1.9.1-3
|
|
- Define octave package-level dependency via the DESCRIPTION file
|
|
- Remove gmp-devel from Requires
|
|
|
|
* Thu Oct 10 2019 Qianqian Fang <fangqq@gmail.com> - 1.9.1-2
|
|
- Fix licenses
|
|
- Move binaries to libexec
|
|
|
|
* Wed Oct 02 2019 Qianqian Fang <fangqq@gmail.com> - 1.9.1-1
|
|
- Initial package
|