From: Brian Callahan Subject: Re: amnesia-tdd, crack-attack, manaplus vs libcxx update To: Theo Buehler , ports@openbsd.org Date: Tue, 2 Jan 2024 14:58:36 +0000 On 1/2/2024 7:45 AM, Theo Buehler wrote: > On Tue, Jan 02, 2024 at 11:13:58AM +0100, Theo Buehler wrote: >> The following games will no longer build once robert updates libcxx and >> friends because they use std::unary_function or std::binary_function, >> which were deprecated in C++11 and removed in C++17. >> >> An ugly workaround is to re-enable these to fix the build as in the diff >> below. Another ugly workaround is to switch to a build with C++ <= 14. >> >> Please check if upstream has fixed this already and do either one of >> 1. update the port >> 2. backport the fix >> 3. remove the annotations in the affected functions and test >> 4. if you don't like the below, figure out a better fix. >> >> Thanks > > Index: games/manaplus/Makefile > =================================================================== > RCS file: /cvs/ports/games/manaplus/Makefile,v > diff -u -p -r1.106 Makefile > --- games/manaplus/Makefile 26 Sep 2023 09:41:38 -0000 1.106 > +++ games/manaplus/Makefile 2 Jan 2024 10:03:56 -0000 > @@ -41,6 +41,8 @@ CONFIGURE_ARGS = --without-librt \ > --with-sdl2 \ > --without-internalsdlgfx > > +CXXFLAGS += -D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION > + > FAKE_FLAGS += desktopdir=${PREFIX}/share/applications/ > > AUTOCONF_VERSION = 2.69 > For manaplus, the unary_function bits can simply be removed. OK? ~Brian Index: Makefile =================================================================== RCS file: /cvs/ports/games/manaplus/Makefile,v retrieving revision 1.106 diff -u -p -r1.106 Makefile --- Makefile 26 Sep 2023 09:41:38 -0000 1.106 +++ Makefile 2 Jan 2024 14:48:33 -0000 @@ -1,5 +1,5 @@ V = 2.1.3.17 -REVISION = 1 +REVISION = 2 COMMENT = client for The Mana World DISTNAME = manaplus-${V} EXTRACT_SUFX = .tar.xz Index: patches/patch-src_utils_dtor_h =================================================================== RCS file: patches/patch-src_utils_dtor_h diff -N patches/patch-src_utils_dtor_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_utils_dtor_h 2 Jan 2024 14:48:33 -0000 @@ -0,0 +1,24 @@ +C++17 compliance + +Index: src/utils/dtor.h +--- src/utils/dtor.h.orig ++++ src/utils/dtor.h +@@ -30,7 +30,7 @@ + #include "localconsts.h" + + template +-struct dtor final : public std::unary_function ++struct dtor final + { + A_DEFAULT_COPY(dtor) + +@@ -39,8 +39,7 @@ struct dtor final : public std::unary_function +-struct dtor > : +-public std::unary_function , void> ++struct dtor > + { + void operator()(std::pair &pair) + { delete pair.second; }