Once again I've been bitten by the special handling of DEBUG done in cmake.port.mk.
First, cmake might use different CFLAGS in debug and release mode (this is usually specified by upstream in CMakeLists.txt). Those CFLAGS might be undesirable or even unusable on OpenBSD (iirc some stuff might try to link against valgrind or ubsan / whatever). Those might be useful but IMO you shouldn't get to use them when all you want is to rebuild a port with DEBUG=-g, ie debug symbols. Also the release/debug difference means that some ports just won't package because of file names changes: --8<-- ===> Building package for libical-3.0.1 Create /usr/ports/packages/amd64/all/libical-3.0.1.tgz Creating package libical-3.0.1 Error: change in plist | If the old and new builds were done correctly | (fully up-to-date ports tree including relevant MODULES) | then someone probably forgot to bump a REVISION. | (see bsd.port.mk(5), PACKAGE_REPOSITORY) --- /usr/ports/plist/amd64/libical-3.0.1 +++ /usr/ports/plist/amd64/libical-3.0.1-new @@ -74,7 +74,7 @@ lib/cmake/LibIcal/ lib/cmake/LibIcal/LibIcalConfig.cmake lib/cmake/LibIcal/LibIcalConfigVersion.cmake -lib/cmake/LibIcal/LibIcalTargets-release.cmake +lib/cmake/LibIcal/LibIcalTargets-debug.cmake lib/cmake/LibIcal/LibIcalTargets.cmake lib/girepository-1.0/ lib/girepository-1.0/ICalGLib-3.0.typelib *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:1943 '/usr/ports/packages/amd64/all/libical-3.0.1.tgz') *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2440 '_internal-package') *** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2419 'package') *** Error 1 in /usr/ports/textproc/libical (/usr/ports/infrastructure/mk/bsd.port.mk:3421 'repackage') -->8-- $ pkglocate release.cmake | wc -l 150 I think it's fair to say that the ports tree is not ready to use cmake with DEBUG=-g. This could be fixed in theory, but someone has to do the work*, and is does not invalidate my first point. So here's the simple diff that does less and makes DEBUG=-g actually usable. ok? Index: cmake.port.mk =================================================================== RCS file: /d/cvs/ports/devel/cmake/cmake.port.mk,v retrieving revision 1.62 diff -u -p -p -u -r1.62 cmake.port.mk --- cmake.port.mk 28 Nov 2017 10:26:00 -0000 1.62 +++ cmake.port.mk 8 Jan 2018 09:37:03 -0000 @@ -76,13 +76,8 @@ MODCMAKE_configure= cd ${WRKBUILD} && ${ -G ${_MODCMAKE_GEN} ${CONFIGURE_ARGS} ${WRKSRC} .if !defined(CONFIGURE_ARGS) || ! ${CONFIGURE_ARGS:M*CMAKE_BUILD_TYPE*} -. if defined(DEBUG) -CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE:String=Debug -MODCMAKE_BUILD_SUFFIX = -debug.cmake -. else CONFIGURE_ARGS += -DCMAKE_BUILD_TYPE:String=Release MODCMAKE_BUILD_SUFFIX = -release.cmake -. endif .endif SUBST_VARS += MODCMAKE_BUILD_SUFFIX * why isn't MODCMAKE_BUILD_SUFFIX properly substituted in all PLISTs? -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE