Saturday, March 01, 2025

Re: [revision] devel/boost: Install BoostConfig.cmake

2025-02-28T17:10:44+0000 Johannes Thyssen Tishman <jtt@openbsd.org>:
> From [1]:
> > CMake 3.29 and below provide a FindBoost module, but it needs constant
> > updates to keep up with upstream Boost releases. Upstream Boost 1.70
> > and above provide a BoostConfig.cmake package configuration file.
> > find_package(Boost CONFIG) finds the upstream package directly,
> > without the find module.
> >
> > CMake 3.30 and above prefer to not provide the FindBoost module so
> > that find_package(Boost) calls, without the CONFIG or NO_MODULE
> > options, find the upstream BoostConfig.cmake directly. This policy
> > provides compatibility for projects that have not been ported to use
> > the upstream Boost package.
> >
> > The OLD behavior of this policy is for find_package(Boost) to load
> > CMake's FindBoost module. The NEW behavior is for find_package(Boost)
> > to search for the upstream BoostConfig.cmake.
> >
> > This policy was introduced in CMake version 3.30. It may be set by
> > cmake_policy() or cmake_minimum_required(). If it is not set, CMake
> > warns, and uses OLD behavior.
>
> So if a project explicitly sets a policy version >= 3.30, CMake won't
> look for the FindBoost.cmake module installed by devel/cmake/core and
> will instead look for the BoostConfig.cmake file which our devel/boost
> does not install.
>
> I bumped into this issue in my last two port updates (graphics/pcl and
> devel/cli11), so I'd like to propose installing the BoostConfig.cmake
> and related CMake files provided by upstream. I assume we will have to
> do this sooner or later anyways.
>
> The patch 'patch-tools_boost_install_boost-install_jam' is hacky, but
> without it the relative path to the 'include' directory that's generated
> in the CMake files ends up pointing to /usr (e.g. [2] line 26) and I
> couldn't figure out why. I'd be happy to see a better solution.
>
> If this revision is acceptable, would it be possible to run it through a
> bulk? I tested both graphics/pcl (with a patch to fix finding boost
> removed) and devel/cli11 with the changes below and had no issues.
>
> [1] https://cmake.org/cmake/help/latest/policy/CMP0167.html#policy:CMP0167
> [2] /usr/local/lib/cmake/boost_atomic-1.84.0/boost_atomic-config.cmake

Please find below a revised patch with the following feedback addressed:

- boost*-config.cmake files associated with libraries only shipped by
the -md subpackage have now been moved to their corresponding PLIST-md
- Add VERSION to SUBST_VARS to avoid PLIST churn on updates
- As requested, remove rsadowski@ from the MAINTAINER

Index: devel/boost/Makefile
===================================================================
RCS file: /cvs/ports/devel/boost/Makefile,v
diff -u -p -r1.151 Makefile
--- devel/boost/Makefile 31 Jan 2025 05:56:28 -0000 1.151
+++ devel/boost/Makefile 1 Mar 2025 10:12:04 -0000
@@ -8,7 +8,7 @@ COMMENT-md= machine-dependent libraries
VERSION= 1.84.0
DISTNAME= boost_${VERSION:S/./_/g}
PKGNAME= boost-${VERSION}
-REVISION= 7
+REVISION= 8
EPOCH= 0
CATEGORIES= devel
SITES= https://archives.boost.io/release/${VERSION}/source/
@@ -64,8 +64,7 @@ SHARED_LIBS+= ${_lib} ${SO_VERSION}

HOMEPAGE= https://www.boost.org/

-MAINTAINER= Brad Smith <brad@comstyle.com> \
- Rafael Sadowski <rsadowski@openbsd.org>
+MAINTAINER= Brad Smith <brad@comstyle.com>

# Boost
PERMIT_PACKAGE= Yes
@@ -126,7 +125,7 @@ CONFIGURE_ENV= BJAM_CONFIG="${BJAM_CONFI

NO_TEST= Yes

-SUBST_VARS+= SO_VERSION
+SUBST_VARS+= VERSION SO_VERSION

# Revert back to Boost::Context 1.80.0 ASM code for i386
# and add new support for sparc64
@@ -135,7 +134,7 @@ post-extract:

do-configure:
echo "using ${TOOLSET} : : ${CXX} ;" >>${WRKSRC}/tools/build/src/user-config.jam
- ${SUBST_CMD} ${WRKSRC}/Jamroot
+ ${SUBST_CMD} ${WRKSRC}/boostcpp.jam
@cd ${WRKSRC}/libs/config && \
${SETENV} ${CONFIGURE_ENV} /bin/sh ./configure
@cd ${WRKSRC}/tools/build/src/engine && ${SETENV} ${CONFIGURE_ENV} \
@@ -153,6 +152,8 @@ do-install:
pax -rw -s ':^.*${PATCHORIG}$$::' . ${PREFIX}/include/boost
find ${PREFIX}/include/boost -type d -exec chmod ${DIRMODE} {} +
find ${PREFIX}/include/boost -type f -exec chmod ${SHAREMODE} {} +
+ # CMake files:
+ cp -R ${WRKSRC}/stage/lib/cmake ${PREFIX}/lib
# boost-build:
${INSTALL_PROGRAM} ${WRKSRC}/tools/build/src/engine/b2 \
${PREFIX}/bin
Index: devel/boost/patches/patch-Jamroot
===================================================================
RCS file: devel/boost/patches/patch-Jamroot
diff -N devel/boost/patches/patch-Jamroot
--- devel/boost/patches/patch-Jamroot 19 Dec 2023 06:14:25 -0000 1.20
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,17 +0,0 @@
-Index: Jamroot
---- Jamroot.orig
-+++ Jamroot
-@@ -147,11 +147,12 @@ import tools/boost\_install/boost-install ;
- path-constant BOOST_ROOT : . ;
- constant BOOST_VERSION : 1.84.0 ;
- constant BOOST_JAMROOT_MODULE : $(__name__) ;
-+constant SO_VERSION : ${SO_VERSION} ;
-
- # Allow subprojects to simply `import config : requires ;` to get access to the requires rule
- modules.poke : BOOST_BUILD_PATH : $(BOOST_ROOT)/libs/config/checks [ modules.peek : BOOST_BUILD_PATH ] ;
-
--boostcpp.set-version $(BOOST_VERSION) ;
-+boostcpp.set-version $(SO_VERSION) ;
-
- use-project /boost/architecture : libs/config/checks/architecture ;
-
Index: devel/boost/patches/patch-boostcpp_jam
===================================================================
RCS file: devel/boost/patches/patch-boostcpp_jam
diff -N devel/boost/patches/patch-boostcpp_jam
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ devel/boost/patches/patch-boostcpp_jam 1 Mar 2025 10:12:04 -0000
@@ -0,0 +1,20 @@
+Index: boostcpp.jam
+--- boostcpp.jam.orig
++++ boostcpp.jam
+@@ -35,6 +35,7 @@ import version : version-less ;
+
+ BOOST_ROOT = [ modules.binding $(__name__) ] ;
+ BOOST_ROOT = $(BOOST_ROOT:D) ;
++SO_VERSION = ${SO_VERSION} ;
+
+ rule set-version ( version )
+ {
+@@ -212,7 +213,7 @@ rule tag ( name : type ? : property-set )
+ ! [ $(property-set).get <target-os> ] in windows cygwin darwin aix android &&
+ ! [ $(property-set).get <toolset> ] in pgi
+ {
+- result = $(result).$(BOOST_VERSION) ;
++ result = $(result).$(SO_VERSION) ;
+ }
+
+ return $(result) ;
Index: devel/boost/patches/patch-tools_boost_install_boost-install_jam
===================================================================
RCS file: devel/boost/patches/patch-tools_boost_install_boost-install_jam
diff -N devel/boost/patches/patch-tools_boost_install_boost-install_jam
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ devel/boost/patches/patch-tools_boost_install_boost-install_jam 1 Mar 2025 10:12:04 -0000
@@ -0,0 +1,12 @@
+Index: tools/boost_install/boost-install.jam
+--- tools/boost_install/boost-install.jam.orig
++++ tools/boost_install/boost-install.jam
+@@ -797,7 +797,7 @@ rule generate-cmake-config- ( target : sources * : pro
+ : true ;
+ }
+
+- get-dir "_BOOST_INCLUDEDIR" : $(includedir) ;
++ get-dir "_BOOST_INCLUDEDIR" : "$(includedir)/local/include" ;
+
+ if $(library-type) = INTERFACE
+ {
Index: devel/boost/pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/devel/boost/pkg/PLIST-main,v
diff -u -p -r1.31 PLIST-main
--- devel/boost/pkg/PLIST-main 21 Dec 2024 11:34:45 -0000 1.31
+++ devel/boost/pkg/PLIST-main 1 Mar 2025 10:12:06 -0000
@@ -16989,6 +16989,285 @@ include/boost/yap/expression.hpp
include/boost/yap/print.hpp
include/boost/yap/user_macros.hpp
include/boost/yap/yap.hpp
+lib/cmake/
+lib/cmake/Boost-${VERSION}/
+lib/cmake/Boost-${VERSION}/BoostConfig.cmake
+lib/cmake/Boost-${VERSION}/BoostConfigVersion.cmake
+lib/cmake/BoostDetectToolset-${VERSION}.cmake
+lib/cmake/boost_atomic-${VERSION}/
+lib/cmake/boost_atomic-${VERSION}/boost_atomic-config-version.cmake
+lib/cmake/boost_atomic-${VERSION}/boost_atomic-config.cmake
+lib/cmake/boost_atomic-${VERSION}/libboost_atomic-variant-mt-shared.cmake
+lib/cmake/boost_atomic-${VERSION}/libboost_atomic-variant-mt-static.cmake
+lib/cmake/boost_chrono-${VERSION}/
+lib/cmake/boost_chrono-${VERSION}/boost_chrono-config-version.cmake
+lib/cmake/boost_chrono-${VERSION}/boost_chrono-config.cmake
+lib/cmake/boost_chrono-${VERSION}/libboost_chrono-variant-mt-shared.cmake
+lib/cmake/boost_chrono-${VERSION}/libboost_chrono-variant-mt-static.cmake
+lib/cmake/boost_chrono-${VERSION}/libboost_chrono-variant-shared.cmake
+lib/cmake/boost_chrono-${VERSION}/libboost_chrono-variant-static.cmake
+lib/cmake/boost_container-${VERSION}/
+lib/cmake/boost_container-${VERSION}/boost_container-config-version.cmake
+lib/cmake/boost_container-${VERSION}/boost_container-config.cmake
+lib/cmake/boost_container-${VERSION}/libboost_container-variant-mt-shared.cmake
+lib/cmake/boost_container-${VERSION}/libboost_container-variant-mt-static.cmake
+lib/cmake/boost_container-${VERSION}/libboost_container-variant-shared.cmake
+lib/cmake/boost_container-${VERSION}/libboost_container-variant-static.cmake
+lib/cmake/boost_contract-${VERSION}/
+lib/cmake/boost_contract-${VERSION}/boost_contract-config-version.cmake
+lib/cmake/boost_contract-${VERSION}/boost_contract-config.cmake
+lib/cmake/boost_contract-${VERSION}/libboost_contract-variant-mt-shared.cmake
+lib/cmake/boost_contract-${VERSION}/libboost_contract-variant-mt-static.cmake
+lib/cmake/boost_contract-${VERSION}/libboost_contract-variant-shared.cmake
+lib/cmake/boost_contract-${VERSION}/libboost_contract-variant-static.cmake
+lib/cmake/boost_date_time-${VERSION}/
+lib/cmake/boost_date_time-${VERSION}/boost_date_time-config-version.cmake
+lib/cmake/boost_date_time-${VERSION}/boost_date_time-config.cmake
+lib/cmake/boost_date_time-${VERSION}/libboost_date_time-variant-mt-shared.cmake
+lib/cmake/boost_date_time-${VERSION}/libboost_date_time-variant-mt-static.cmake
+lib/cmake/boost_date_time-${VERSION}/libboost_date_time-variant-shared.cmake
+lib/cmake/boost_date_time-${VERSION}/libboost_date_time-variant-static.cmake
+lib/cmake/boost_exception-${VERSION}/
+lib/cmake/boost_exception-${VERSION}/boost_exception-config-version.cmake
+lib/cmake/boost_exception-${VERSION}/boost_exception-config.cmake
+lib/cmake/boost_filesystem-${VERSION}/
+lib/cmake/boost_filesystem-${VERSION}/boost_filesystem-config-version.cmake
+lib/cmake/boost_filesystem-${VERSION}/boost_filesystem-config.cmake
+lib/cmake/boost_filesystem-${VERSION}/libboost_filesystem-variant-mt-shared.cmake
+lib/cmake/boost_filesystem-${VERSION}/libboost_filesystem-variant-mt-static.cmake
+lib/cmake/boost_filesystem-${VERSION}/libboost_filesystem-variant-shared.cmake
+lib/cmake/boost_filesystem-${VERSION}/libboost_filesystem-variant-static.cmake
+lib/cmake/boost_graph-${VERSION}/
+lib/cmake/boost_graph-${VERSION}/boost_graph-config-version.cmake
+lib/cmake/boost_graph-${VERSION}/boost_graph-config.cmake
+lib/cmake/boost_graph-${VERSION}/libboost_graph-variant-mt-shared.cmake
+lib/cmake/boost_graph-${VERSION}/libboost_graph-variant-mt-static.cmake
+lib/cmake/boost_graph-${VERSION}/libboost_graph-variant-shared.cmake
+lib/cmake/boost_graph-${VERSION}/libboost_graph-variant-static.cmake
+lib/cmake/boost_graph_parallel-${VERSION}/
+lib/cmake/boost_graph_parallel-${VERSION}/boost_graph_parallel-config-version.cmake
+lib/cmake/boost_graph_parallel-${VERSION}/boost_graph_parallel-config.cmake
+lib/cmake/boost_headers-${VERSION}/
+lib/cmake/boost_headers-${VERSION}/boost_headers-config-version.cmake
+lib/cmake/boost_headers-${VERSION}/boost_headers-config.cmake
+lib/cmake/boost_iostreams-${VERSION}/
+lib/cmake/boost_iostreams-${VERSION}/boost_iostreams-config-version.cmake
+lib/cmake/boost_iostreams-${VERSION}/boost_iostreams-config.cmake
+lib/cmake/boost_iostreams-${VERSION}/libboost_iostreams-variant-mt-shared.cmake
+lib/cmake/boost_iostreams-${VERSION}/libboost_iostreams-variant-mt-static.cmake
+lib/cmake/boost_iostreams-${VERSION}/libboost_iostreams-variant-shared.cmake
+lib/cmake/boost_iostreams-${VERSION}/libboost_iostreams-variant-static.cmake
+lib/cmake/boost_json-${VERSION}/
+lib/cmake/boost_json-${VERSION}/boost_json-config-version.cmake
+lib/cmake/boost_json-${VERSION}/boost_json-config.cmake
+lib/cmake/boost_json-${VERSION}/libboost_json-variant-mt-shared.cmake
+lib/cmake/boost_json-${VERSION}/libboost_json-variant-mt-static.cmake
+lib/cmake/boost_json-${VERSION}/libboost_json-variant-shared.cmake
+lib/cmake/boost_json-${VERSION}/libboost_json-variant-static.cmake
+lib/cmake/boost_locale-${VERSION}/
+lib/cmake/boost_locale-${VERSION}/boost_locale-config-version.cmake
+lib/cmake/boost_locale-${VERSION}/boost_locale-config.cmake
+lib/cmake/boost_locale-${VERSION}/libboost_locale-variant-mt-shared.cmake
+lib/cmake/boost_locale-${VERSION}/libboost_locale-variant-mt-static.cmake
+lib/cmake/boost_locale-${VERSION}/libboost_locale-variant-shared.cmake
+lib/cmake/boost_locale-${VERSION}/libboost_locale-variant-static.cmake
+lib/cmake/boost_log-${VERSION}/
+lib/cmake/boost_log-${VERSION}/boost_log-config-version.cmake
+lib/cmake/boost_log-${VERSION}/boost_log-config.cmake
+lib/cmake/boost_log-${VERSION}/libboost_log-variant-mt-shared.cmake
+lib/cmake/boost_log-${VERSION}/libboost_log-variant-mt-static.cmake
+lib/cmake/boost_log-${VERSION}/libboost_log-variant-shared.cmake
+lib/cmake/boost_log-${VERSION}/libboost_log-variant-static.cmake
+lib/cmake/boost_log_setup-${VERSION}/
+lib/cmake/boost_log_setup-${VERSION}/boost_log_setup-config-version.cmake
+lib/cmake/boost_log_setup-${VERSION}/boost_log_setup-config.cmake
+lib/cmake/boost_log_setup-${VERSION}/libboost_log_setup-variant-mt-shared.cmake
+lib/cmake/boost_log_setup-${VERSION}/libboost_log_setup-variant-mt-static.cmake
+lib/cmake/boost_log_setup-${VERSION}/libboost_log_setup-variant-shared.cmake
+lib/cmake/boost_log_setup-${VERSION}/libboost_log_setup-variant-static.cmake
+lib/cmake/boost_math_c99-${VERSION}/
+lib/cmake/boost_math_c99-${VERSION}/boost_math_c99-config-version.cmake
+lib/cmake/boost_math_c99-${VERSION}/boost_math_c99-config.cmake
+lib/cmake/boost_math_c99-${VERSION}/libboost_math_c99-variant-mt-shared.cmake
+lib/cmake/boost_math_c99-${VERSION}/libboost_math_c99-variant-mt-static.cmake
+lib/cmake/boost_math_c99-${VERSION}/libboost_math_c99-variant-shared.cmake
+lib/cmake/boost_math_c99-${VERSION}/libboost_math_c99-variant-static.cmake
+lib/cmake/boost_math_c99f-${VERSION}/
+lib/cmake/boost_math_c99f-${VERSION}/boost_math_c99f-config-version.cmake
+lib/cmake/boost_math_c99f-${VERSION}/boost_math_c99f-config.cmake
+lib/cmake/boost_math_c99f-${VERSION}/libboost_math_c99f-variant-mt-shared.cmake
+lib/cmake/boost_math_c99f-${VERSION}/libboost_math_c99f-variant-mt-static.cmake
+lib/cmake/boost_math_c99f-${VERSION}/libboost_math_c99f-variant-shared.cmake
+lib/cmake/boost_math_c99f-${VERSION}/libboost_math_c99f-variant-static.cmake
+lib/cmake/boost_math_c99l-${VERSION}/
+lib/cmake/boost_math_c99l-${VERSION}/boost_math_c99l-config-version.cmake
+lib/cmake/boost_math_c99l-${VERSION}/boost_math_c99l-config.cmake
+lib/cmake/boost_math_c99l-${VERSION}/libboost_math_c99l-variant-mt-shared.cmake
+lib/cmake/boost_math_c99l-${VERSION}/libboost_math_c99l-variant-mt-static.cmake
+lib/cmake/boost_math_c99l-${VERSION}/libboost_math_c99l-variant-shared.cmake
+lib/cmake/boost_math_c99l-${VERSION}/libboost_math_c99l-variant-static.cmake
+lib/cmake/boost_math_tr1-${VERSION}/
+lib/cmake/boost_math_tr1-${VERSION}/boost_math_tr1-config-version.cmake
+lib/cmake/boost_math_tr1-${VERSION}/boost_math_tr1-config.cmake
+lib/cmake/boost_math_tr1-${VERSION}/libboost_math_tr1-variant-mt-shared.cmake
+lib/cmake/boost_math_tr1-${VERSION}/libboost_math_tr1-variant-mt-static.cmake
+lib/cmake/boost_math_tr1-${VERSION}/libboost_math_tr1-variant-shared.cmake
+lib/cmake/boost_math_tr1-${VERSION}/libboost_math_tr1-variant-static.cmake
+lib/cmake/boost_math_tr1f-${VERSION}/
+lib/cmake/boost_math_tr1f-${VERSION}/boost_math_tr1f-config-version.cmake
+lib/cmake/boost_math_tr1f-${VERSION}/boost_math_tr1f-config.cmake
+lib/cmake/boost_math_tr1f-${VERSION}/libboost_math_tr1f-variant-mt-shared.cmake
+lib/cmake/boost_math_tr1f-${VERSION}/libboost_math_tr1f-variant-mt-static.cmake
+lib/cmake/boost_math_tr1f-${VERSION}/libboost_math_tr1f-variant-shared.cmake
+lib/cmake/boost_math_tr1f-${VERSION}/libboost_math_tr1f-variant-static.cmake
+lib/cmake/boost_math_tr1l-${VERSION}/
+lib/cmake/boost_math_tr1l-${VERSION}/boost_math_tr1l-config-version.cmake
+lib/cmake/boost_math_tr1l-${VERSION}/boost_math_tr1l-config.cmake
+lib/cmake/boost_math_tr1l-${VERSION}/libboost_math_tr1l-variant-mt-shared.cmake
+lib/cmake/boost_math_tr1l-${VERSION}/libboost_math_tr1l-variant-mt-static.cmake
+lib/cmake/boost_math_tr1l-${VERSION}/libboost_math_tr1l-variant-shared.cmake
+lib/cmake/boost_math_tr1l-${VERSION}/libboost_math_tr1l-variant-static.cmake
+lib/cmake/boost_mpi-${VERSION}/
+lib/cmake/boost_mpi-${VERSION}/boost_mpi-config-version.cmake
+lib/cmake/boost_mpi-${VERSION}/boost_mpi-config.cmake
+lib/cmake/boost_nowide-${VERSION}/
+lib/cmake/boost_nowide-${VERSION}/boost_nowide-config-version.cmake
+lib/cmake/boost_nowide-${VERSION}/boost_nowide-config.cmake
+lib/cmake/boost_nowide-${VERSION}/libboost_nowide-variant-mt-shared.cmake
+lib/cmake/boost_nowide-${VERSION}/libboost_nowide-variant-mt-static.cmake
+lib/cmake/boost_nowide-${VERSION}/libboost_nowide-variant-shared.cmake
+lib/cmake/boost_nowide-${VERSION}/libboost_nowide-variant-static.cmake
+lib/cmake/boost_numpy-${VERSION}/
+lib/cmake/boost_numpy-${VERSION}/boost_numpy-config-version.cmake
+lib/cmake/boost_numpy-${VERSION}/boost_numpy-config.cmake
+lib/cmake/boost_numpy-${VERSION}/libboost_numpy-variant-mt-shared-py${MODPY_VERSION}.cmake
+lib/cmake/boost_numpy-${VERSION}/libboost_numpy-variant-mt-static-py${MODPY_VERSION}.cmake
+lib/cmake/boost_numpy-${VERSION}/libboost_numpy-variant-shared-py${MODPY_VERSION}.cmake
+lib/cmake/boost_numpy-${VERSION}/libboost_numpy-variant-static-py${MODPY_VERSION}.cmake
+lib/cmake/boost_prg_exec_monitor-${VERSION}/
+lib/cmake/boost_prg_exec_monitor-${VERSION}/boost_prg_exec_monitor-config-version.cmake
+lib/cmake/boost_prg_exec_monitor-${VERSION}/boost_prg_exec_monitor-config.cmake
+lib/cmake/boost_prg_exec_monitor-${VERSION}/libboost_prg_exec_monitor-variant-mt-shared.cmake
+lib/cmake/boost_prg_exec_monitor-${VERSION}/libboost_prg_exec_monitor-variant-mt-static.cmake
+lib/cmake/boost_prg_exec_monitor-${VERSION}/libboost_prg_exec_monitor-variant-shared.cmake
+lib/cmake/boost_prg_exec_monitor-${VERSION}/libboost_prg_exec_monitor-variant-static.cmake
+lib/cmake/boost_program_options-${VERSION}/
+lib/cmake/boost_program_options-${VERSION}/boost_program_options-config-version.cmake
+lib/cmake/boost_program_options-${VERSION}/boost_program_options-config.cmake
+lib/cmake/boost_program_options-${VERSION}/libboost_program_options-variant-mt-shared.cmake
+lib/cmake/boost_program_options-${VERSION}/libboost_program_options-variant-mt-static.cmake
+lib/cmake/boost_program_options-${VERSION}/libboost_program_options-variant-shared.cmake
+lib/cmake/boost_program_options-${VERSION}/libboost_program_options-variant-static.cmake
+lib/cmake/boost_python-${VERSION}/
+lib/cmake/boost_python-${VERSION}/boost_python-config-version.cmake
+lib/cmake/boost_python-${VERSION}/boost_python-config.cmake
+lib/cmake/boost_python-${VERSION}/libboost_python-variant-mt-shared-py${MODPY_VERSION}.cmake
+lib/cmake/boost_python-${VERSION}/libboost_python-variant-mt-static-py${MODPY_VERSION}.cmake
+lib/cmake/boost_python-${VERSION}/libboost_python-variant-shared-py${MODPY_VERSION}.cmake
+lib/cmake/boost_python-${VERSION}/libboost_python-variant-static-py${MODPY_VERSION}.cmake
+lib/cmake/boost_random-${VERSION}/
+lib/cmake/boost_random-${VERSION}/boost_random-config-version.cmake
+lib/cmake/boost_random-${VERSION}/boost_random-config.cmake
+lib/cmake/boost_random-${VERSION}/libboost_random-variant-mt-shared.cmake
+lib/cmake/boost_random-${VERSION}/libboost_random-variant-mt-static.cmake
+lib/cmake/boost_random-${VERSION}/libboost_random-variant-shared.cmake
+lib/cmake/boost_random-${VERSION}/libboost_random-variant-static.cmake
+lib/cmake/boost_regex-${VERSION}/
+lib/cmake/boost_regex-${VERSION}/boost_regex-config-version.cmake
+lib/cmake/boost_regex-${VERSION}/boost_regex-config.cmake
+lib/cmake/boost_regex-${VERSION}/libboost_regex-variant-mt-shared.cmake
+lib/cmake/boost_regex-${VERSION}/libboost_regex-variant-mt-static.cmake
+lib/cmake/boost_regex-${VERSION}/libboost_regex-variant-shared.cmake
+lib/cmake/boost_regex-${VERSION}/libboost_regex-variant-static.cmake
+lib/cmake/boost_serialization-${VERSION}/
+lib/cmake/boost_serialization-${VERSION}/boost_serialization-config-version.cmake
+lib/cmake/boost_serialization-${VERSION}/boost_serialization-config.cmake
+lib/cmake/boost_serialization-${VERSION}/libboost_serialization-variant-mt-shared.cmake
+lib/cmake/boost_serialization-${VERSION}/libboost_serialization-variant-mt-static.cmake
+lib/cmake/boost_serialization-${VERSION}/libboost_serialization-variant-shared.cmake
+lib/cmake/boost_serialization-${VERSION}/libboost_serialization-variant-static.cmake
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/boost_stacktrace_addr2line-config-version.cmake
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/boost_stacktrace_addr2line-config.cmake
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/libboost_stacktrace_addr2line-variant-mt-shared.cmake
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/libboost_stacktrace_addr2line-variant-mt-static.cmake
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/libboost_stacktrace_addr2line-variant-shared.cmake
+lib/cmake/boost_stacktrace_addr2line-${VERSION}/libboost_stacktrace_addr2line-variant-static.cmake
+lib/cmake/boost_stacktrace_basic-${VERSION}/
+lib/cmake/boost_stacktrace_basic-${VERSION}/boost_stacktrace_basic-config-version.cmake
+lib/cmake/boost_stacktrace_basic-${VERSION}/boost_stacktrace_basic-config.cmake
+lib/cmake/boost_stacktrace_basic-${VERSION}/libboost_stacktrace_basic-variant-mt-shared.cmake
+lib/cmake/boost_stacktrace_basic-${VERSION}/libboost_stacktrace_basic-variant-mt-static.cmake
+lib/cmake/boost_stacktrace_basic-${VERSION}/libboost_stacktrace_basic-variant-shared.cmake
+lib/cmake/boost_stacktrace_basic-${VERSION}/libboost_stacktrace_basic-variant-static.cmake
+lib/cmake/boost_stacktrace_noop-${VERSION}/
+lib/cmake/boost_stacktrace_noop-${VERSION}/boost_stacktrace_noop-config-version.cmake
+lib/cmake/boost_stacktrace_noop-${VERSION}/boost_stacktrace_noop-config.cmake
+lib/cmake/boost_stacktrace_noop-${VERSION}/libboost_stacktrace_noop-variant-mt-shared.cmake
+lib/cmake/boost_stacktrace_noop-${VERSION}/libboost_stacktrace_noop-variant-mt-static.cmake
+lib/cmake/boost_stacktrace_noop-${VERSION}/libboost_stacktrace_noop-variant-shared.cmake
+lib/cmake/boost_stacktrace_noop-${VERSION}/libboost_stacktrace_noop-variant-static.cmake
+lib/cmake/boost_system-${VERSION}/
+lib/cmake/boost_system-${VERSION}/boost_system-config-version.cmake
+lib/cmake/boost_system-${VERSION}/boost_system-config.cmake
+lib/cmake/boost_system-${VERSION}/libboost_system-variant-mt-shared.cmake
+lib/cmake/boost_system-${VERSION}/libboost_system-variant-mt-static.cmake
+lib/cmake/boost_system-${VERSION}/libboost_system-variant-shared.cmake
+lib/cmake/boost_system-${VERSION}/libboost_system-variant-static.cmake
+lib/cmake/boost_test_exec_monitor-${VERSION}/
+lib/cmake/boost_test_exec_monitor-${VERSION}/boost_test_exec_monitor-config-version.cmake
+lib/cmake/boost_test_exec_monitor-${VERSION}/boost_test_exec_monitor-config.cmake
+lib/cmake/boost_test_exec_monitor-${VERSION}/libboost_test_exec_monitor-variant-mt-shared.cmake
+lib/cmake/boost_test_exec_monitor-${VERSION}/libboost_test_exec_monitor-variant-mt-static.cmake
+lib/cmake/boost_test_exec_monitor-${VERSION}/libboost_test_exec_monitor-variant-shared.cmake
+lib/cmake/boost_test_exec_monitor-${VERSION}/libboost_test_exec_monitor-variant-static.cmake
+lib/cmake/boost_thread-${VERSION}/
+lib/cmake/boost_thread-${VERSION}/boost_thread-config-version.cmake
+lib/cmake/boost_thread-${VERSION}/boost_thread-config.cmake
+lib/cmake/boost_thread-${VERSION}/libboost_thread-variant-mt-shared.cmake
+lib/cmake/boost_thread-${VERSION}/libboost_thread-variant-mt-static.cmake
+lib/cmake/boost_timer-${VERSION}/
+lib/cmake/boost_timer-${VERSION}/boost_timer-config-version.cmake
+lib/cmake/boost_timer-${VERSION}/boost_timer-config.cmake
+lib/cmake/boost_timer-${VERSION}/libboost_timer-variant-mt-shared.cmake
+lib/cmake/boost_timer-${VERSION}/libboost_timer-variant-mt-static.cmake
+lib/cmake/boost_timer-${VERSION}/libboost_timer-variant-shared.cmake
+lib/cmake/boost_timer-${VERSION}/libboost_timer-variant-static.cmake
+lib/cmake/boost_type_erasure-${VERSION}/
+lib/cmake/boost_type_erasure-${VERSION}/boost_type_erasure-config-version.cmake
+lib/cmake/boost_type_erasure-${VERSION}/boost_type_erasure-config.cmake
+lib/cmake/boost_type_erasure-${VERSION}/libboost_type_erasure-variant-mt-shared.cmake
+lib/cmake/boost_type_erasure-${VERSION}/libboost_type_erasure-variant-mt-static.cmake
+lib/cmake/boost_type_erasure-${VERSION}/libboost_type_erasure-variant-shared.cmake
+lib/cmake/boost_type_erasure-${VERSION}/libboost_type_erasure-variant-static.cmake
+lib/cmake/boost_unit_test_framework-${VERSION}/
+lib/cmake/boost_unit_test_framework-${VERSION}/boost_unit_test_framework-config-version.cmake
+lib/cmake/boost_unit_test_framework-${VERSION}/boost_unit_test_framework-config.cmake
+lib/cmake/boost_unit_test_framework-${VERSION}/libboost_unit_test_framework-variant-mt-shared.cmake
+lib/cmake/boost_unit_test_framework-${VERSION}/libboost_unit_test_framework-variant-mt-static.cmake
+lib/cmake/boost_unit_test_framework-${VERSION}/libboost_unit_test_framework-variant-shared.cmake
+lib/cmake/boost_unit_test_framework-${VERSION}/libboost_unit_test_framework-variant-static.cmake
+lib/cmake/boost_url-${VERSION}/
+lib/cmake/boost_url-${VERSION}/boost_url-config-version.cmake
+lib/cmake/boost_url-${VERSION}/boost_url-config.cmake
+lib/cmake/boost_url-${VERSION}/libboost_url-variant-mt-shared.cmake
+lib/cmake/boost_url-${VERSION}/libboost_url-variant-mt-static.cmake
+lib/cmake/boost_url-${VERSION}/libboost_url-variant-shared.cmake
+lib/cmake/boost_url-${VERSION}/libboost_url-variant-static.cmake
+lib/cmake/boost_wave-${VERSION}/
+lib/cmake/boost_wave-${VERSION}/boost_wave-config-version.cmake
+lib/cmake/boost_wave-${VERSION}/boost_wave-config.cmake
+lib/cmake/boost_wave-${VERSION}/libboost_wave-variant-mt-shared.cmake
+lib/cmake/boost_wave-${VERSION}/libboost_wave-variant-mt-static.cmake
+lib/cmake/boost_wave-${VERSION}/libboost_wave-variant-shared.cmake
+lib/cmake/boost_wave-${VERSION}/libboost_wave-variant-static.cmake
+lib/cmake/boost_wserialization-${VERSION}/
+lib/cmake/boost_wserialization-${VERSION}/boost_wserialization-config-version.cmake
+lib/cmake/boost_wserialization-${VERSION}/boost_wserialization-config.cmake
+lib/cmake/boost_wserialization-${VERSION}/libboost_wserialization-variant-mt-shared.cmake
+lib/cmake/boost_wserialization-${VERSION}/libboost_wserialization-variant-mt-static.cmake
+lib/cmake/boost_wserialization-${VERSION}/libboost_wserialization-variant-shared.cmake
+lib/cmake/boost_wserialization-${VERSION}/libboost_wserialization-variant-static.cmake
@static-lib lib/libboost_atomic-mt.a
@lib lib/libboost_atomic-mt.so.${LIBboost_atomic-mt_VERSION}
@static-lib lib/libboost_chrono-mt.a
Index: devel/boost/pkg/PLIST-md
===================================================================
RCS file: /cvs/ports/devel/boost/pkg/PLIST-md,v
diff -u -p -r1.4 PLIST-md
--- devel/boost/pkg/PLIST-md 11 Mar 2022 18:49:45 -0000 1.4
+++ devel/boost/pkg/PLIST-md 1 Mar 2025 10:12:06 -0000
@@ -1,3 +1,20 @@
+lib/cmake/boost_context-${VERSION}/
+lib/cmake/boost_context-${VERSION}/boost_context-config-version.cmake
+lib/cmake/boost_context-${VERSION}/boost_context-config.cmake
+lib/cmake/boost_context-${VERSION}/libboost_context-variant-mt-shared.cmake
+lib/cmake/boost_context-${VERSION}/libboost_context-variant-mt-static.cmake
+lib/cmake/boost_coroutine-${VERSION}/
+lib/cmake/boost_coroutine-${VERSION}/boost_coroutine-config-version.cmake
+lib/cmake/boost_coroutine-${VERSION}/boost_coroutine-config.cmake
+lib/cmake/boost_coroutine-${VERSION}/libboost_coroutine-variant-mt-shared.cmake
+lib/cmake/boost_coroutine-${VERSION}/libboost_coroutine-variant-mt-static.cmake
+lib/cmake/boost_coroutine-${VERSION}/libboost_coroutine-variant-shared.cmake
+lib/cmake/boost_coroutine-${VERSION}/libboost_coroutine-variant-static.cmake
+lib/cmake/boost_fiber-${VERSION}/
+lib/cmake/boost_fiber-${VERSION}/boost_fiber-config-version.cmake
+lib/cmake/boost_fiber-${VERSION}/boost_fiber-config.cmake
+lib/cmake/boost_fiber-${VERSION}/libboost_fiber-variant-mt-shared.cmake
+lib/cmake/boost_fiber-${VERSION}/libboost_fiber-variant-mt-static.cmake
@static-lib lib/libboost_context-mt.a
@lib lib/libboost_context-mt.so.${LIBboost_context-mt_VERSION}
@static-lib lib/libboost_coroutine-mt.a

Re: port of CodeLite

Hi Stuart!

Thank you so much. I've been able to build CodeLite from source code thanks to the port you gave me. The only issue I had was that I had to install sqlite3 from ports because the version installed from the package manager was sqlite3.37.30 instead of sqlite3.37.31 and I don't know why because I've updated both system base (to -CURRENT) and ports (using pkg_add -u) as described in the FAQ and OpenBSD guides (I did it yesterday afternoon).

I didn't have any problem running it on OpenBSD although I'll be testing some time. I didn't realize how difficult it was to build from source because when I started using it (four years ago) I started from the precompiled binaries available on the website so I'm sorry for that. 

NOTE: The problem you had with x11/wxWidgets,-media were caused for some dependency using the wxMediaCtrl (I had that problem too when I built from source code, but I don't remember if the problem was caused by the program or maybe a submodule).

So, thank you so much for your help. You saved me a lot of time.

El mié, 26 feb 2025 a las 16:01, Stuart Henderson (<stu@spacehopper.org>) escribió:
On 2025/02/22 11:02, Guillermo Bernaldo de Quiros Maraver wrote:
> Hi, good morning!
>
> If possible, I would like to port CodeLite into OpenBSD using the guidelines described in the
> FAQ (https://www.openbsd.org/faq/ports/guide.html).
>
> Currently, I've built and installed the current version of github (which is 18.1.0) following
> the build instructions of the codelite web site. I've had some problems with the cmake files
> and some parts of the source code but nothing too complicated.
>
> The software works fine (with minor changes as I said before). I've been using it for assembly,
> C and C++ development both for embedded systems and servers mainly. It's easy to use and has
> some useful plugins (like git integration) which makes it easy to work with. The problem I have
> is I have to rebuild the software after an upgrade (I use OpenBSD -CURRENT) and that process
> takes a lot of time (nearly 3/4 hours) so I would like to install/update it using pkg_add
> instead of rebuilding from source code.
>
> So my question is, is anyone working on it? I don't see any entry in the ports / packages, if
> not, I would like to try to port it. (I don't have experience porting software into OpenBSD so
> I understand this process will take a lot of time).
>
> If no one is working on the port, I'm interested in giving it a try.
>
> Thank you so much in advance!
> Guille

It's a bit awkward because of the git submodules so I made a start at
writing a port to help out with that, but got carried away and got it
to build.

Seems to run OK in very light testing but I haven't tried anything fancy..

Not sure what's going on with x11/wxWidgets,-media; compiling fails if
the header isn't available but it doesn't seem to either link to or dlopen
the library.

Re: [Update] shells/fish 4.0.0

On 2025/03/01 09:12, Theo Buehler wrote:
> On Sat, Mar 01, 2025 at 08:42:48AM +0100, Sebastien Marie wrote:
> > Stuart Henderson <stu@spacehopper.org> writes:
> >
> > > On 2025/02/27 19:03, Volker Schlecht wrote:
> > >> MODULES = devel/cmake \
> > >> + devel/cargo \
> > >
> > > any idea if there are users of this on !rust archs?
> > >
> >
> > even if there are such users, upstream chooses this road so it is
> > preferable to copte with it. I am unsure it worths the pain to
> > maintaining both ports (like librsvg).
>
> I agree: shells/fish itself should follow upstream which has switched to
> rust.
>
> However, since this is a leaf port, we could reimport the old C++-based
> fish simply as shells/fish3 (there's perhaps a bit of pain for removing
> the conflict between the two versions if we want to do that).

I don't think it's necessary to avoid a conflict, the main reason for
doing that would be if other ports start to depend on fish (and even
that would be ok as long as they don't mind which version they have).

To handle updates nicely:

- change the path on both versions, for example shells/fish/v3 and
shells/fish/main

- have both use fish as the stem (fish-3.xx, fish-4.xx), like done in
Postfix

- use "@option is-branch" in both plists

- in v3, set a variable (e.g. RUST_COMMENT) to "@comment " on Rust
archs, and leave it empty on non-Rust archs, add it to SUBST_VARS, and
use "${RUST_COMMENT}@pkgpath shells/fish" in the plist

That way the package produced on non-rust archs will have the
annotation, and the v3 package on rust archs will have an @comment.

- in main, just have "@pkgpath shells/fish" in the PLIST (no need for
anything special there, as obviously it won't build on non-Rust archs
anyway)

This way, users with the existing package on a !rust arch will get
seamlessly adjusted to the new pkgpath for v3, users on a rust arch will
get moved to v4, and - importantly - there will only be one version on
an arch that has "@pkgpath shells/fish", so users on a rust arch won't
keep getting asked which version they want to update to when they run
pkg_add -u.

A user running "pkg_add fish" will be asked to choose which version, but
then updates will happen automatically. And for scripted installs,
"pkg_add fish%main" or "pkg_add fish%v3" will avoid it asking.

> My understanding is most of the pain of librsvg comes from it being an
> important dependency for graphics-based programs, so it has to be
> supported in the same port.

There is another way that could be done but would be messier in the
ports using librsvg; the same-port method means that the librsvg port is
a bit more complicated but other ports are simpler.

debugging bsd.port.mk internals

There's a trick that works since we added .VARIABLES to make.

$ make verbose-show='${.VARIABLES}'

(quotes needed so make will see them but not the shell)

You generally want to sort them, and you can filter the names using the :M
construct

e.g.,

mabel$ make verbose-show='${.VARIABLES:M*LINK*}'|sort
BUILD_UNLINKED=
COMPILER_LINKS= clang /usr/bin/clang clang++ /usr/bin/clang++ cc /usr/bin/cc c++ /usr/bin/c++
LINK.F=f77 -O2
LINK.S=cc
LINK.c=cc -O2 -pipe
LINK.cc=c++ -O2 -pipe
LINK.f=f77 -O2
LINK.p=pc
LINK.r=f77 -O2
LINK.s=cc
LINKER_VERSION=lld
OCAML_NATIVE_DYNLINK_ARCHS=aarch64 amd64 i386
UNLINKED=wayland
_LINKER_FLAGS=
_PACKAGE_LINKS= amd64/ftp/arc-5.21pp0.tgz amd64/all/arc-5.21pp0.tgz

Re: [Update] shells/fish 4.0.0

On Sat, Mar 01, 2025 at 08:42:48AM +0100, Sebastien Marie wrote:
> Stuart Henderson <stu@spacehopper.org> writes:
>
> > On 2025/02/27 19:03, Volker Schlecht wrote:
> >> MODULES = devel/cmake \
> >> + devel/cargo \
> >
> > any idea if there are users of this on !rust archs?
> >
>
> even if there are such users, upstream chooses this road so it is
> preferable to copte with it. I am unsure it worths the pain to
> maintaining both ports (like librsvg).

I agree: shells/fish itself should follow upstream which has switched to
rust.

However, since this is a leaf port, we could reimport the old C++-based
fish simply as shells/fish3 (there's perhaps a bit of pain for removing
the conflict between the two versions if we want to do that).

My understanding is most of the pain of librsvg comes from it being an
important dependency for graphics-based programs, so it has to be
supported in the same port.

> Full disclaimer: I am using fish on i386 since few months, so I will
> switch back to ksh on i386.
>
> Regards.
> --
> Sebastien Marie
>