Hi, I've redone the diff to match what you recommend upstream. I've also added logic so that if system is UNIX but not OpenBSD, then link in dl (which allows it to build for other platforms upstream). Once this is committed upstream I can remove the CMakeLists.txt patch.
Thanks, Tom Index: Makefile =================================================================== RCS file: /cvs/ports/games/mvdsv/Makefile,v retrieving revision 1.5 diff -u -p -u -p -r1.5 Makefile --- Makefile 11 Mar 2022 19:04:41 -0000 1.5 +++ Makefile 23 Aug 2022 13:43:29 -0000 @@ -1,8 +1,8 @@ COMMENT = QuakeWorld server -GH_ACCOUNT = deurk +GH_ACCOUNT = QW-Group GH_PROJECT = mvdsv -GH_TAGNAME = 0.34 +GH_TAGNAME = 0.35 CATEGORIES = games @@ -23,13 +23,10 @@ DISTFILES = mvdsv-{}${GH_TAGNAME}.tar.gz qwprogs-${QWP_VERSION}{qwprogs}.dat:0 EXTRACT_ONLY = mvdsv-${GH_TAGNAME}.tar.gz -MODULES = devel/meson +MODULES = devel/cmake LIB_DEPENDS = devel/pcre \ net/curl - -# help ld.bfd find libnghttp2 -LDFLAGS = -L${LOCALBASE}/lib NO_TEST = Yes Index: distinfo =================================================================== RCS file: /cvs/ports/games/mvdsv/distinfo,v retrieving revision 1.3 diff -u -p -u -p -r1.3 distinfo --- distinfo 16 Oct 2021 14:43:12 -0000 1.3 +++ distinfo 23 Aug 2022 13:43:29 -0000 @@ -1,4 +1,4 @@ -SHA256 (mvdsv-0.34.tar.gz) = gZBxjf4QiPTxKmYXfusBwaUn9fRl5w3sT7uP7tSZTGo= +SHA256 (mvdsv-0.35.tar.gz) = bk7yLKpr85yxLjGLd9gFmVXb+fxBmttPbnR2aOYAC5o= SHA256 (qwprogs-20120131.dat) = /1HLXnc2DXK5NIfYkZjc+UYpuS+LrhAPxupIpsEqeDA= -SIZE (mvdsv-0.34.tar.gz) = 597476 +SIZE (mvdsv-0.35.tar.gz) = 555708 SIZE (qwprogs-20120131.dat) = 197684 Index: patches/patch-CMakeLists_txt =================================================================== RCS file: patches/patch-CMakeLists_txt diff -N patches/patch-CMakeLists_txt --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-CMakeLists_txt 23 Aug 2022 13:43:29 -0000 @@ -0,0 +1,75 @@ +Remove link to dl as it is in OpenBSD's libc +Have Cmake find and link to devel/pcre if installed, otherwise fall back to bundled pcre. +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -59,8 +59,6 @@ set(SRC_COMMON + "${DIR_SRC}/vfs_pak.c" + "${DIR_SRC}/world.c" + "${DIR_SRC}/zone.c" +- "${DIR_SRC}/pcre/get.c" +- "${DIR_SRC}/pcre/pcre.c" + ) + + # Check build target, and included sources +@@ -89,14 +87,31 @@ else() + ) + endif() + ++###################################################################################################### + ++# Check for pcre, and include sources and libs, if found ++find_library(PCRE_LIBRARIES pcre) ++if(PCRE_LIBRARIES) ++ set(PCRE_FOUND 1) ++ find_path(PCRE_INCLUDE_DIR pcre.h) ++endif(PCRE_LIBRARIES) ++ ++if(NOT PCRE_FOUND) ++ message(STATUS "PCRE library not found. Using bundled PCRE intead.") ++ list(APPEND SRC_COMMON ++ "${DIR_SRC}/pcre/get.c" ++ "${DIR_SRC}/pcre/pcre.c" ++ ) ++else() ++ message(STATUS "Found PCRE: ${PCRE_LIBRARIES}") ++endif() ++ + ###################################################################################################### + + # Set base compiler flags + set(CFLAGS -Wall) + set(LFLAGS) + +- + ###################################################################################################### + + # Set target +@@ -111,14 +126,16 @@ set_target_properties(${PROJECT_NAME} + + # Set include directories + target_include_directories(${PROJECT_NAME} PRIVATE ${CURL_INCLUDE_DIRS}) ++target_include_directories(${PROJECT_NAME} PRIVATE ${PCRE_INCLUDE_DIR}) + +- + ###################################################################################################### + + # Check build target, and included sources and libs + if(UNIX) + target_link_libraries(${PROJECT_NAME} m) ++if(CMAKE_SYSTEM_NAME MATCHES !OpenBSD) + target_link_libraries(${PROJECT_NAME} dl) ++endif() + else() + target_link_libraries(${PROJECT_NAME} ws2_32) + target_link_libraries(${PROJECT_NAME} winmm) +@@ -147,6 +164,9 @@ if(CURL_FOUND) + target_link_libraries(${PROJECT_NAME} ${CURL_LIBRARIES}) + endif() + ++if(PCRE_FOUND) ++ target_link_libraries(${PROJECT_NAME} ${PCRE_LIBRARIES}) ++endif() + + ###################################################################################################### + Index: patches/patch-meson_build =================================================================== RCS file: patches/patch-meson_build diff -N patches/patch-meson_build --- patches/patch-meson_build 11 Mar 2022 19:04:41 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ -Index: meson.build ---- meson.build.orig -+++ meson.build -@@ -86,8 +86,8 @@ if target_machine.system() == 'windows' - else - mvdsv_sources += 'src/sv_sys_unix.c' - deps += [ -- meson.get_compiler('c').find_library('m'), -- meson.get_compiler('c').find_library('dl'), -+ meson.get_compiler('c').find_library('m', required: false), -+ meson.get_compiler('c').find_library('dl', required: false), - ] - endif - Index: patches/patch-src_sv_ccmds_c =================================================================== RCS file: /cvs/ports/games/mvdsv/patches/patch-src_sv_ccmds_c,v retrieving revision 1.2 diff -u -p -u -p -r1.2 patch-src_sv_ccmds_c --- patches/patch-src_sv_ccmds_c 11 Mar 2022 19:04:41 -0000 1.2 +++ patches/patch-src_sv_ccmds_c 23 Aug 2022 13:43:29 -0000 @@ -5,7 +5,7 @@ at: https://github.com/deurk/mvdsv/pull/ Index: src/sv_ccmds.c --- src/sv_ccmds.c.orig +++ src/sv_ccmds.c -@@ -738,54 +738,6 @@ void SV_ChmodFile_f (void) +@@ -741,54 +741,6 @@ void SV_ChmodFile_f (void) } #endif //_WIN32 @@ -60,7 +60,7 @@ Index: src/sv_ccmds.c /* ================== SV_Kick_f -@@ -1844,8 +1796,6 @@ void SV_InitOperatorCommands (void) +@@ -1847,8 +1799,6 @@ void SV_InitOperatorCommands (void) Cmd_AddCommand ("chmod", SV_ChmodFile_f); #endif //_WIN32 //<-