From 570b62cfe07f1de843b2d142717fe1113f065570 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 3 Nov 2024 06:59:03 -0500 Subject: [PATCH 01/11] Invoke %cmake in %conf rather than in %build --- v-hacd.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/v-hacd.spec b/v-hacd.spec index 9f91fd6..502d255 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -104,9 +104,14 @@ general utility beyond testing. %autosetup -n %{name}-%{version} -%build +%conf pushd app >/dev/null %cmake -GNinja +popd >/dev/null + + +%build +pushd app >/dev/null %cmake_build popd >/dev/null From e2566f1df8870857c06f64d0d6c490b492329a40 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:02:19 +0000 Subject: [PATCH 02/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 812035e1db8a3260440fab39c8a859b3c4fc5c47 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 19:55:29 +0000 Subject: [PATCH 03/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 1441e1f67c694fd8f7a23f9be539cce7de150c1f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 19:44:47 +0000 Subject: [PATCH 04/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 84c32f27ac09ac7d3c85cdc6995c8129b98876de Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 15 Mar 2026 08:54:08 +0000 Subject: [PATCH 05/11] Improve a conditional in the spec file [skip changelog] --- v-hacd.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v-hacd.spec b/v-hacd.spec index 502d255..f31f8ba 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -1,6 +1,6 @@ # 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}} +%bcond tests %{undefined el10} Name: v-hacd Version: 4.1.0 From f680a90dce0050bb44b7e966d1874673503f4cb9 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 15 Mar 2026 08:55:20 +0000 Subject: [PATCH 06/11] Reduce macro indirection in the spec file [skip changelog] --- v-hacd.spec | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/v-hacd.spec b/v-hacd.spec index f31f8ba..71bbad1 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -10,7 +10,7 @@ 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} +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,7 +18,7 @@ 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 @@ -75,11 +75,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 +95,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 %conf From 7c8a997a9f9722bc70e2eca06ee65c64572f4a3b Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sun, 15 Mar 2026 08:56:14 +0000 Subject: [PATCH 07/11] =?UTF-8?q?The=20ninja=20backend=20is=20the=20defaul?= =?UTF-8?q?t=20now;=20don=E2=80=99t=20bother=20specifying=20it?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://fedoraproject.org/wiki/Changes/CMake_ninja_default --- v-hacd.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/v-hacd.spec b/v-hacd.spec index 71bbad1..808cfff 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -30,8 +30,6 @@ ExcludeArch: %{ix86} BuildRequires: gcc-c++ BuildRequires: cmake -# Our choice; the make backend would work just fine. -BuildRequires: ninja-build %if %{with tests} BuildRequires: vtk-data @@ -106,7 +104,7 @@ general utility beyond testing. %conf pushd app >/dev/null -%cmake -GNinja +%cmake popd >/dev/null From fb21d8fcc0b647b0cab5e61a4513563d5ed7567c Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 20 May 2026 06:40:36 +0100 Subject: [PATCH 08/11] Use various long options --- v-hacd.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/v-hacd.spec b/v-hacd.spec index 808cfff..d7d2ca8 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -118,12 +118,15 @@ 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} From 239794398e23863110b6c1ad1e5c306f9dd7d79b Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 20 May 2026 06:47:36 +0100 Subject: [PATCH 09/11] Include a freely licensed .obj file in the SRPM for testing --- cube.obj | 18 ++++++++++++++++++ v-hacd.spec | 22 ++++++---------------- 2 files changed, 24 insertions(+), 16 deletions(-) create mode 100644 cube.obj diff --git a/cube.obj b/cube.obj new file mode 100644 index 0000000..3f91d36 --- /dev/null +++ b/cube.obj @@ -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 diff --git a/v-hacd.spec b/v-hacd.spec index d7d2ca8..b7207b1 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -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 %{undefined el10} - Name: v-hacd Version: 4.1.0 Release: %autorelease @@ -10,6 +6,8 @@ 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 +# 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. @@ -24,6 +22,8 @@ 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} @@ -31,10 +31,6 @@ ExcludeArch: %{ix86} BuildRequires: gcc-c++ BuildRequires: cmake -%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. @@ -129,16 +125,10 @@ 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 upstream’s sample meshes. Decrease the -# max recursion depth from 15 to the default (10) so this doesn’t 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 upstream’s sample meshes. +%{buildroot}%{_bindir}/TestVHACD '%{SOURCE3}' -e 0.01 -d 15 -r 10000000 -r 128 %files devel From b36ade077f9ba0a29ac178bef162e2e759d4e439 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Wed, 20 May 2026 06:52:32 +0100 Subject: [PATCH 10/11] Use the cmake declarative buildsystem --- v-hacd.spec | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/v-hacd.spec b/v-hacd.spec index b7207b1..3016be6 100644 --- a/v-hacd.spec +++ b/v-hacd.spec @@ -25,11 +25,12 @@ 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 +BuildSystem: cmake + # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildRequires: gcc-c++ -BuildRequires: cmake %global common_description %{expand: The V-HACD library decomposes a 3D surface into a set of “near” convex parts. @@ -65,7 +66,6 @@ Summary: Development files for V-HACD # The MIT-licensed app/wavefront.{h,cpp} do not contribute to this subpackage. License: BSD-3-Clause - BuildArch: noarch # https://docs.fedoraproject.org/en-US/packaging-guidelines/#_packaging_header_only_libraries @@ -94,35 +94,25 @@ library. Currently, this means TestVHACD; despite the name, this tool has general utility beyond testing. -%prep -%autosetup -p1 +%conf -p +cd app -%conf -pushd app >/dev/null -%cmake -popd >/dev/null - - -%build -pushd app >/dev/null -%cmake_build -popd >/dev/null +%build -p +cd app %install -pushd app >/dev/null +install -D --preserve-timestamps --mode=0644 \ + --target='%{buildroot}%{_includedir}' 'include/VHACD.h' +install -D --preserve-timestamps --mode=0644 \ + --target='%{buildroot}%{_mandir}/man1' '%{SOURCE2}' + +cd app # There are currently no install targets in app/CMakeLists.txt, so # %%cmake_install will not work. We install the executable manually instead. install -D --preserve-timestamps \ --target='%{buildroot}%{_bindir}' '%{_vpath_builddir}/TestVHACD' -popd >/dev/null - -install -D --preserve-timestamps --mode=0644 \ - --target='%{buildroot}%{_includedir}' 'include/VHACD.h' - -install -D --preserve-timestamps --mode=0644 \ - --target='%{buildroot}%{_mandir}/man1' '%{SOURCE2}' %check From ff647cd65be97ba82c16d6c1b73ec26b8b958ba3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:19:33 +0000 Subject: [PATCH 11/11] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild