diff --git a/devel/boost-libs/Makefile b/devel/boost-libs/Makefile index 3613bd48c87f..7fb071997e2f 100644 --- a/devel/boost-libs/Makefile +++ b/devel/boost-libs/Makefile @@ -1,59 +1,60 @@ # Created by: Alexander Churanov PORTNAME= boost-libs +PORTREVISION= 1 COMMENT= Free portable C++ libraries (without Boost.Python) LICENSE= BSL BROKEN_sparc64= https://github.com/boostorg/context/commit/f2ef6326b6ed BUILD_DEPENDS+= bjam:devel/boost-jam OPTIONS_DEFINE= DEBUG OPTIMIZED_CFLAGS OPTIONS_MULTI= LOCALE OPTIONS_MULTI_LOCALE= ICONV ICU OPTIONS_DEFAULT= ICONV ICU ICONV_DESC= Boost.Locale with iconv encoding support ICU_DESC= Boost.Regex/Locale with ICU unicode support ICONV_USES= iconv ICONV_MAKE_ARGS= -sICONV_PATH=${ICONV_PREFIX} ICONV_MAKE_ARGS_OFF= boost.locale.iconv=off ICU_LIB_DEPENDS= libicuuc.so:devel/icu ICU_MAKE_ARGS= -sICU_PATH=${LOCALBASE} ICU_MAKE_ARGS_OFF= boost.locale.icu=off .include "${.CURDIR}/../boost-all/common.mk" .include "${.CURDIR}/../boost-all/compiled.mk" MAKE_ARGS+= --without-python MAKE_ARGS+= ${MAKE_ARGS_${CHOSEN_COMPILER_TYPE}} MAKE_ARGS_gcc= xdll-path=${_GCC_RUNTIME} ALL_TARGET= stage do-install: @cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \ ${MAKE_ARGS:NDESTDIR=*:S,^--prefix=,&${STAGEDIR},} ${INSTALL_TARGET} @${FIND} ${STAGEDIR}${PREFIX}/lib/cmake -type f -exec \ ${REINPLACE_CMD} -i '' -e 's,${STAGEDIR},,' {} + # For some reasons BJAM forget about the links @cd ${WRKSRC}/stage/ && ${FIND} lib -type l | ${PAX} -rw -p p ${STAGEDIR}${PREFIX} # display pkg-message post-install: @${TOUCH} ${PKGMESSAGE} @${CAT} ${PKG_MESSAGE_FILE_THREADS} >> ${PKGMESSAGE} @${ECHO_CMD} >> ${PKGMESSAGE} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/*.so @${REINPLACE_CMD} \ -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \ -e "s|%%PYTHON_INCLUDEDIR%%|${PYTHON_INCLUDEDIR}|g" \ -e "s|%%PYTHON_LIBDIR%%|${PYTHON_LIBDIR}|g" \ -e "s|%%PYTHON_VERSION%%|${PYTHON_VERSION}|g" ${PKGMESSAGE} .include diff --git a/devel/boost-libs/files/patch-0001-json-array-erase-relocate b/devel/boost-libs/files/patch-0001-json-array-erase-relocate new file mode 100644 index 000000000000..d322b64f4477 --- /dev/null +++ b/devel/boost-libs/files/patch-0001-json-array-erase-relocate @@ -0,0 +1,49 @@ +diff -ur boost/json/impl/array.ipp boost/json/impl/array.ipp +--- boost/json/impl/array.ipp 2022-04-06 17:02:43.000000000 -0400 ++++ boost/json/impl/array.ipp 2022-04-13 20:55:20.464359478 -0400 +@@ -491,8 +491,11 @@ + auto const p = &(*t_)[0] + + (pos - &(*t_)[0]); + destroy(p, p + 1); +- relocate(p, p + 1, 1); + --t_->size; ++ if(t_->size > 0) ++ relocate(p, p + 1, ++ t_->size - (p - ++ &(*t_)[0])); + return p; + } + +diff -ur libs/json/test/array.cpp libs/json/test/array.cpp +--- libs/json/test/array.cpp 2022-04-06 17:02:43.000000000 -0400 ++++ libs/json/test/array.cpp 2022-04-13 20:53:32.671782680 -0400 +@@ -1270,6 +1270,21 @@ + } + + void ++ testIssue692() ++ { ++ array a; ++ object obj; ++ obj["test1"] = "hello"; ++ a.push_back(obj); ++ a.push_back(obj); ++ a.push_back(obj); ++ a.push_back(obj); ++ a.push_back(obj); ++ while(a.size()) ++ a.erase(a.begin()); ++ } ++ ++ void + run() + { + testDestroy(); +@@ -1283,6 +1298,7 @@ + testExceptions(); + testEquality(); + testHash(); ++ testIssue692(); + } + }; +