Compare commits

...
Sign in to create a new pull request.

4 commits

Author SHA1 Message Date
Benjamin A. Beasley
bd7d43bd29 Include a freely licensed .obj file in the SRPM for testing 2026-05-20 07:12:52 +01:00
Benjamin A. Beasley
5155440ce4 Use various long options 2026-05-20 07:09:42 +01:00
Benjamin A. Beasley
b32e3035ed Reduce macro indirection in the spec file
[skip changelog]
2026-05-20 07:09:28 +01:00
Benjamin A. Beasley
679782e587 Improve a conditional in the spec file
[skip changelog]
2026-05-20 07:09:19 +01:00
2 changed files with 36 additions and 25 deletions

18
cube.obj Normal file
View file

@ -0,0 +1,18 @@
# Blender v2.83.4 OBJ File: ''
# www.blender.org
o Cube_Cube.001
v -1.000000 -1.000000 1.000000
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -1.000000
v 1.000000 -1.000000 -1.000000
v 1.000000 1.000000 1.000000
v 1.000000 -1.000000 1.000000
s off
f 1 2 3 4
f 4 3 5 6
f 6 5 7 8
f 8 7 2 1
f 4 6 8 1
f 5 3 2 7

View file

@ -1,7 +1,3 @@
# TODO: Can we find a package with a suitable .obj file that we can use to run
# the tests in EPEL10?
%bcond tests %{expr:!0%{?el10}}
Name: v-hacd
Version: 4.1.0
Release: %autorelease
@ -10,7 +6,9 @@ Summary: Decomposes a 3D surface into a set of “near” convex parts
# The entire source is BSD-3-Clause, except:
# - app/wavefront.{h,cpp} are MIT
License: BSD-3-Clause AND MIT
URL: https://github.com/kmammou/%{name}
# We use an OBJ file from mcut, which is LGPL-3.0-only, for testing: Source3
SourceLicense: %{license} AND LGPL-3.0-only
URL: https://github.com/kmammou/v-hacd
# This has the app/meshes/ directory stripped out. The .obj files therein have
# unclear or unspecified licenses, which makes them unsuitable for Fedora.
#
@ -18,12 +16,14 @@ URL: https://github.com/kmammou/%{name}
# README.rst as a sanity check.
#
# Generated with ./get_source.sh %%{version}
Source0: %{name}-%{version}-filtered.tar.zst
Source0: v-hacd-%{version}-filtered.tar.zst
# Script to generate Source0; see comments above.
Source1: get_source.sh
# Man page hand-written for Fedora in groff_man(7) format based on help output
# and README.md contents.
Source2: TestVHACD.1
# Very trivial OBJ mesh file from mcut, which is LGPL-3.0-only
Source3: https://github.com/cutdigital/mcut/raw/refs/tags/v1.3.0/tutorials/BasicCmdLineApp/data/cube.obj
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
@ -33,10 +33,6 @@ BuildRequires: cmake
# Our choice; the make backend would work just fine.
BuildRequires: ninja-build
%if %{with tests}
BuildRequires: vtk-data
%endif
%global common_description %{expand:
The V-HACD library decomposes a 3D surface into a set of “near” convex parts.
@ -75,11 +71,11 @@ License: BSD-3-Clause
BuildArch: noarch
# https://docs.fedoraproject.org/en-US/packaging-guidelines/#_packaging_header_only_libraries
Provides: %{name}-static = %{?epoch:%{epoch}:}%{version}-%{release}
Provides: v-hacd-static = %{?epoch:%{epoch}:}%{version}-%{release}
%description devel %{common_description}
The %{name}-devel package contains the header-only library for developing
The v-hacd-devel package contains the header-only library for developing
applications that use V-HACD.
@ -95,13 +91,13 @@ License: BSD-3-Clause AND MIT
%description tools %{common_description}
The %{name}-tools package contains command-line tools based on the V-HACD
The v-hacd-tools package contains command-line tools based on the V-HACD
library. Currently, this means TestVHACD; despite the name, this tool has
general utility beyond testing.
%prep
%autosetup -n %{name}-%{version}
%autosetup -p1
%build
@ -115,24 +111,21 @@ popd >/dev/null
pushd app >/dev/null
# There are currently no install targets in app/CMakeLists.txt, so
# %%cmake_install will not work. We install the executable manually instead.
install -t '%{buildroot}%{_bindir}' -p -D '%{_vpath_builddir}/TestVHACD'
install -D --preserve-timestamps \
--target='%{buildroot}%{_bindir}' '%{_vpath_builddir}/TestVHACD'
popd >/dev/null
install -t '%{buildroot}%{_includedir}' -m 0644 -p -D 'include/VHACD.h'
install -D --preserve-timestamps --mode=0644 \
--target='%{buildroot}%{_includedir}' 'include/VHACD.h'
install -t '%{buildroot}%{_mandir}/man1' -m 0644 -p -D '%{SOURCE2}'
install -D --preserve-timestamps --mode=0644 \
--target='%{buildroot}%{_mandir}/man1' '%{SOURCE2}'
%if %{with tests}
%check
# Use the example from README.md as a sanity check, but use an arbitrary mesh
# from vtk as input since we cannot ship upstreams sample meshes. Decrease the
# max recursion depth from 15 to the default (10) so this doesnt explode on
# 32-bit ARM in Fedora 36.
%{buildroot}%{_bindir}/TestVHACD \
%{_datadir}/vtkdata/Testing/Data/Viewpoint/cow.obj \
-e 0.01 -d 10 -r 10000000 -r 128
%endif
# as input since we cannot ship upstreams sample meshes.
%{buildroot}%{_bindir}/TestVHACD '%{SOURCE3}' -e 0.01 -d 15 -r 10000000 -r 128
%files devel