<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a99e66975272e6cd45ba9025f14c09b3eccefd9f">https://github.com/macports/macports-ports/commit/a99e66975272e6cd45ba9025f14c09b3eccefd9f</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new a99e6697527 libfive: update to 20241103
</span>a99e6697527 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit a99e66975272e6cd45ba9025f14c09b3eccefd9f
</span>Author: Szabolcs Horvát <szhorvat@gmail.com>
AuthorDate: Sun Nov 3 19:44:34 2024 +0000
<span style='display:block; white-space:pre;color:#404040;'> libfive: update to 20241103
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> - Fixes build on recent macOS at the cost of breaking it on 10.14 and earlier
</span><span style='display:block; white-space:pre;color:#404040;'> - Use Guile 3.0
</span><span style='display:block; white-space:pre;color:#404040;'> - Add support for recent Python versions
</span><span style='display:block; white-space:pre;color:#404040;'> - Use Python 3.12 by default
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes https://trac.macports.org/ticket/63664
</span>---
graphics/libfive/Portfile | 43 ++++++++++------------
.../libfive/files/patch-remove-march-native.diff | 19 ++++++----
.../libfive/files/patch-use-macports-guile.diff | 42 +++++++++++++++++++++
3 files changed, 74 insertions(+), 30 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/libfive/Portfile b/graphics/libfive/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 8a591d85537..ee31d59fa89 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/libfive/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/libfive/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,20 +5,13 @@ PortGroup github 1.0
</span> PortGroup cmake 1.1
PortGroup boost 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Version 601730dc8181f12aeb0c6c66bbe3f4f9b4523134 below does not build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# with Eigen 3.4, which is the current Eigen version in MacPorts. Newer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# versions require macOS 10.15 or later to be able to build with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Eigen 3.4+, so the update should be done by someone with access 10.15+.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# See https://trac.macports.org/ticket/63664
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # libfive does not have releases; the master branch is recommended.
# See https://libfive.com/download/
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup libfive libfive 601730dc8181f12aeb0c6c66bbe3f4f9b4523134
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version 20210717
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup libfive libfive 71899313d36ce14de6646ef760fa6bbc5c0cc067
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 20241103
</span> revision 0
categories graphics math cad
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms darwin
</span> license MPL-2
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,9 +24,9 @@ long_description libfive is a software library and set of tools for solid mod
</span> infrastructure for generative design, mass customization, and \
domain-specific CAD tools.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 00534d1377c208a7cbcaa34f636dc9334fe70a1c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 ee34bfd335062d89888e819e929f51926667ea5c33699bf6627e38ee572306f8 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 879290
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 946e212d3de61c47d6ceb4bc0bd251ba5691ce39 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 546cfc85e5321b0d22d920fa829119dc30a7c679bdeea29e04d3674b9686ad57 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 917395
</span>
# Even though eigen3 is header-only, it must be a library dependency because
# the libfive headers include it.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -53,13 +46,17 @@ configure.args-append \
</span> -DBUILD_PYTHON_BINDINGS=OFF \
-DBUILD_STUDIO_APP=OFF
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Workaround from https://github.com/libfive/libfive/blob/71899313d36ce14de6646ef760fa6bbc5c0cc067/CMakeLists.txt#L85
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -D__USE_ISOC99
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> patchfiles patch-remove-march-native.diff
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-use-macports-guile.diff
</span>
# Guile binding:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# libfive supports Guile 3.0 as well, but MacPorts currently only includes 2.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant guile description {Build guile 2.2 bindings} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_lib-append port:guile-2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant guile description {Build guile 3.0 bindings} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:guile-3.0
</span> configure.args-replace -DBUILD_GUILE_BINDINGS=OFF -DBUILD_GUILE_BINDINGS=ON
build.env-append GUILE_AUTO_COMPILE=0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,17 +69,16 @@ variant guile description {Build guile 2.2 bindings} {
</span>
# Python bindings:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# The minimum supported Python version is 3.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pythons_suffixes {37 38 39}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pythons_versions {3.9 3.10 3.11 3.12 3.13}
</span>
set pythons_ports {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend pythons_ports python${s}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach v ${pythons_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend pythons_ports python[string map {. {}} ${v}]
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach v ${pythons_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set s [string map {. {}} ${v}]
</span> set p python${s}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set v [string index ${s} 0].[string index ${s} 1]
</span> set i [lsearch -exact ${pythons_ports} ${p}]
set c [lreplace ${pythons_ports} ${i} ${i}]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,8 +153,9 @@ test.target
</span>
# Default variants:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set selected_python python39
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set selected_python python312
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach v ${pythons_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set s [string map {. {}} ${v}]
</span> if {[variant_isset python${s}]} {
set selected_python python${s}
}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/libfive/files/patch-remove-march-native.diff b/graphics/libfive/files/patch-remove-march-native.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 1d001472953..f55f82e4e6a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/libfive/files/patch-remove-march-native.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/libfive/files/patch-remove-march-native.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +1,16 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- CMakeLists.txt.old 2021-04-29 14:38:58.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ CMakeLists.txt 2021-04-29 14:39:18.000000000 +0200
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,7 +47,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ################################################################################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Do not use the -match=native flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,12 +57,6 @@ endif()
</span> if(NOT MSVC)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -g -fPIC -pedantic -Werror=switch -march=native")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -g -fPIC -pedantic -Werror=switch")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra ${LIBFIVE_DEBUGGING}-fPIC -pedantic -Werror=switch")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Sometimes this flag is not supported (e.g. on Apple Silicon)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- check_cxx_compiler_flag("-march=native" MARCH_SUPPORTED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if(MARCH_SUPPORTED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span> set(CMAKE_CXX_FLAGS_DEBUG "-O0")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DEIGEN_NO_DEBUG")
else()
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/libfive/files/patch-use-macports-guile.diff b/graphics/libfive/files/patch-use-macports-guile.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..ca67d843136
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/libfive/files/patch-use-macports-guile.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,42 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Make sure that MacPorts's Guile 3.0 is used, with the customized executable names.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,9 +94,11 @@ if(NOT MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ find_package(Boost REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ find_package(PkgConfig REQUIRED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pkg_check_modules(GUILE guile-2.2>=2.2.1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (NOT(GUILE_FOUND))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pkg_check_modules(GUILE guile-3.0>=3.0.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pkg_check_modules(GUILE guile-3.0>=3.0.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (GUILE_FOUND)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pkg_get_variable(GUILE_EXEC guile-3.0 guile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pkg_get_variable(GUILD_EXEC guile-3.0 guild)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pkg_check_modules(EIGEN REQUIRED eigen3>=3.2.92)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libfive/bind/guile/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libfive/bind/guile/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,10 +28,10 @@ foreach(SRC ${SRCS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Then, copy the file from Guile's compilation cache to the build directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ execute_process(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- COMMAND guile -c "(use-modules (system base compile))(format #t \"~A\" (compiled-file-name \"${FULL_SRC}\"))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ COMMAND ${GUILE_EXEC} -c "(use-modules (system base compile))(format #t \"~A\" (compiled-file-name \"${FULL_SRC}\"))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OUTPUT_VARIABLE CCACHE_FILE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_custom_command(OUTPUT ${OUT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- COMMAND ${CMAKE_COMMAND} -E env LIBFIVE_FRAMEWORK_DIR=$<TARGET_FILE_DIR:libfive>/ LIBFIVE_STDLIB_DIR=$<TARGET_FILE_DIR:libfive-stdlib>/ guild compile -L${CMAKE_CURRENT_SOURCE_DIR} ${FULL_SRC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ COMMAND ${CMAKE_COMMAND} -E env LIBFIVE_FRAMEWORK_DIR=$<TARGET_FILE_DIR:libfive>/ LIBFIVE_STDLIB_DIR=$<TARGET_FILE_DIR:libfive-stdlib>/ ${GUILD_EXEC} compile -L${CMAKE_CURRENT_SOURCE_DIR} ${FULL_SRC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COMMAND ${CMAKE_COMMAND} -E copy ${CCACHE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${OUT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEPENDS ${FULL_SRC} libfive libfive-stdlib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -45,7 +45,7 @@ if(UNIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Find the installation directory for compiled files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (NOT DEFINED GUILE_CCACHE_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ execute_process(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- COMMAND guile -c "(format #t \"~A\" (%site-ccache-dir))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ COMMAND ${GUILE_EXEC} -c "(format #t \"~A\" (%site-ccache-dir))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OUTPUT_VARIABLE GUILE_CCACHE_DIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>