On Sat, Nov 07 2020, Rafael Sadowski <raf...@sizeofvoid.org> wrote: > Please find below a diff to update jsoncpp to the latest stable version > on github. This version includes all patches and fixes some security > related bugs. I removed the include path patches.
While I've cared about jsoncpp in the past I don't understand how its headers could clash with something else (the patch mentions libc++ headers). That's the whole point of using an include/json/ subdirectory and telling people to use <json/foo> in their code. Maybe some people missed the point and started including just <foo> and add -I/usr/local/include/json to their build system. > I see no conflicts in > the tree and all consumers are happy: > > devel/cmake > games/minetest > graphics/orthanc/* > mail/kopano > multimedia/upplay (outdated port, tweak diff in another mail). > > OK? Looks correct, ok jca@ > Rafael > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/devel/jsoncpp/Makefile,v > retrieving revision 1.29 > diff -u -p -u -p -r1.29 Makefile > --- Makefile 12 Jul 2019 20:44:36 -0000 1.29 > +++ Makefile 1 Nov 2020 20:02:54 -0000 > @@ -4,11 +4,10 @@ COMMENT = JSON parsing C++ API > > GH_ACCOUNT = open-source-parsers > GH_PROJECT = jsoncpp > -GH_TAGNAME = 1.8.4 > -REVISION = 2 > +GH_TAGNAME = 1.9.4 > > # no upstream revision > -SHARED_LIBS = jsoncpp 4.0 > +SHARED_LIBS = jsoncpp 5.0 > > CATEGORIES = devel > > @@ -21,7 +20,13 @@ WANTLIB = m ${COMPILER_LIBCXX} > > COMPILER = base-clang ports-gcc base-gcc > > -MODULES = devel/meson > +MODULES = devel/meson \ > + lang/python > + > +CONFIGURE_STYLE = meson > + > +MODPY_RUNDEP = No > +MODPY_VERSION = ${MODPY_DEFAULT_VERSION_3} > > TEST_ENV += LD_PRELOAD=${WRKBUILD}/libjsoncpp.so.${LIBjsoncpp_VERSION} > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/devel/jsoncpp/distinfo,v > retrieving revision 1.14 > diff -u -p -u -p -r1.14 distinfo > --- distinfo 11 Feb 2018 09:05:59 -0000 1.14 > +++ distinfo 1 Nov 2020 20:02:54 -0000 > @@ -1,2 +1,2 @@ > -SHA256 (jsoncpp-1.8.4.tar.gz) = xJ3qyeCTO8twRPCFFoYaLVYJiFQLI94qwa1EOyGa/bY= > -SIZE (jsoncpp-1.8.4.tar.gz) = 200226 > +SHA256 (jsoncpp-1.9.4.tar.gz) = 40piioFCZDuXbHIz7zgUV++teUaMZ8sa4Lg6M9dJOZk= > +SIZE (jsoncpp-1.9.4.tar.gz) = 214057 > Index: patches/patch-include_json_config_h > =================================================================== > RCS file: patches/patch-include_json_config_h > diff -N patches/patch-include_json_config_h > --- patches/patch-include_json_config_h 18 Feb 2018 20:50:25 -0000 > 1.4 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,32 +0,0 @@ > -$OpenBSD: patch-include_json_config_h,v 1.4 2018/02/18 20:50:25 jca Exp $ > - > -"explicit" on non-constructors are a C++11 feature > -https://github.com/open-source-parsers/jsoncpp/commit/04abe38148d99b2a5270521935115d769a714adc > - > -Index: include/json/config.h > ---- include/json/config.h.orig > -+++ include/json/config.h > -@@ -84,15 +84,23 @@ > - #if __cplusplus >= 201103L > - # define JSONCPP_OVERRIDE override > - # define JSONCPP_NOEXCEPT noexcept > -+# define JSONCPP_OP_EXPLICIT explicit > - #elif defined(_MSC_VER) && _MSC_VER > 1600 && _MSC_VER < 1900 > - # define JSONCPP_OVERRIDE override > - # define JSONCPP_NOEXCEPT throw() > -+# if _MSC_VER >= 1800 // MSVC 2013 > -+# define JSONCPP_OP_EXPLICIT explicit > -+# else > -+# define JSONCPP_OP_EXPLICIT > -+# endif > - #elif defined(_MSC_VER) && _MSC_VER >= 1900 > - # define JSONCPP_OVERRIDE override > - # define JSONCPP_NOEXCEPT noexcept > -+# define JSONCPP_OP_EXPLICIT explicit > - #else > - # define JSONCPP_OVERRIDE > - # define JSONCPP_NOEXCEPT throw() > -+# define JSONCPP_OP_EXPLICIT > - #endif > - > - #ifndef JSON_HAS_RVALUE_REFERENCES > Index: patches/patch-include_json_value_h > =================================================================== > RCS file: patches/patch-include_json_value_h > diff -N patches/patch-include_json_value_h > --- patches/patch-include_json_value_h 18 Feb 2018 20:50:25 -0000 > 1.3 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,48 +0,0 @@ > -$OpenBSD: patch-include_json_value_h,v 1.3 2018/02/18 20:50:25 jca Exp $ > - > -"explicit" on non-constructors are a C++11 feature > -https://github.com/open-source-parsers/jsoncpp/commit/04abe38148d99b2a5270521935115d769a714adc > - > -XXX Revert commit 23c44d9f9eed8a7ff95daca9bd44526067c144c0 to avoid > -undefined references when linking cmake. > - > -commit 23c44d9f9eed8a7ff95daca9bd44526067c144c0 > -Author: Dhruv Paranjape <lord.dh...@gmail.com> > -Date: Sat Jul 8 12:00:47 2017 > - > -overload append function for R value references. > - > -Index: include/json/value.h > ---- include/json/value.h.orig > -+++ include/json/value.h > -@@ -322,10 +322,6 @@ Json::Value obj_value(Json::objectValue); // {} > - Value(bool value); > - /// Deep copy. > - Value(const Value& other); > --#if JSON_HAS_RVALUE_REFERENCES > -- /// Move constructor > -- Value(Value&& other); > --#endif > - ~Value(); > - > - /// Deep copy, then swap(other). > -@@ -401,7 +397,7 @@ Json::Value obj_value(Json::objectValue); // {} > - bool empty() const; > - > - /// Return !isNull() > -- explicit operator bool() const; > -+ JSONCPP_OP_EXPLICIT operator bool() const; > - > - /// Remove all object members and array elements. > - /// \pre type() is arrayValue, objectValue, or nullValue > -@@ -451,10 +447,6 @@ Json::Value obj_value(Json::objectValue); // {} > - /// > - /// Equivalent to jsonvalue[jsonvalue.size()] = value; > - Value& append(const Value& value); > -- > --#if JSON_HAS_RVALUE_REFERENCES > -- Value& append(Value&& value); > --#endif > - > - /// Access an object value by name, create a null member if it does not > exist. > - /// \note Because of our implementation, keys are limited to 2^30 -1 > chars. > Index: patches/patch-meson_build > =================================================================== > RCS file: patches/patch-meson_build > diff -N patches/patch-meson_build > --- patches/patch-meson_build 11 Jun 2019 11:15:04 -0000 1.6 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,80 +0,0 @@ > -$OpenBSD: patch-meson_build,v 1.6 2019/06/11 11:15:04 naddy Exp $ > - > -implicit_include_directories : false > - Prevent libc++ headers from picking up <version> file; the header > - files are under include/ > - > -Index: meson.build > ---- meson.build.orig > -+++ meson.build > -@@ -25,7 +25,7 @@ jsoncpp_gen_sources = configure_file( > - output : 'version.h', > - configuration : jsoncpp_cdata, > - install : true, > -- install_dir : join_paths(get_option('prefix'), get_option('includedir'), > 'json') > -+ install_dir : join_paths(get_option('prefix'), get_option('includedir'), > 'jsoncpp', 'json') > - ) > - > - jsoncpp_headers = [ > -@@ -43,8 +43,11 @@ jsoncpp_include_directories = include_directories('inc > - > - install_headers( > - jsoncpp_headers, > -- subdir : 'json') > -+ subdir : 'jsoncpp/json') > - > -+thread_dep = dependency('threads') > -+no_asneeded = '-Wl,--no-as-needed' > -+ > - jsoncpp_lib = library( > - 'jsoncpp', > - [ jsoncpp_gen_sources, > -@@ -55,12 +58,16 @@ jsoncpp_lib = library( > - 'src/lib_json/json_writer.cpp'], > - soversion : 20, > - install : true, > -+ dependencies : thread_dep, > -+ link_args : no_asneeded, > -+ implicit_include_directories : false, > - include_directories : jsoncpp_include_directories) > - > - import('pkgconfig').generate( > - libraries : jsoncpp_lib, > - version : meson.project_version(), > - name : 'jsoncpp', > -+ subdirs : 'jsoncpp', > - filebase : 'jsoncpp', > - description : 'A C++ library for interacting with JSON') > - > -@@ -68,6 +75,8 @@ import('pkgconfig').generate( > - jsoncpp_dep = declare_dependency( > - include_directories : jsoncpp_include_directories, > - link_with : jsoncpp_lib, > -+ dependencies : thread_dep, > -+ link_args : no_asneeded, > - version : meson.project_version(), > - sources : jsoncpp_gen_sources) > - > -@@ -79,8 +88,11 @@ jsoncpp_test = executable( > - [ 'src/test_lib_json/jsontest.cpp', > - 'src/test_lib_json/jsontest.h', > - 'src/test_lib_json/main.cpp'], > -+ implicit_include_directories : false, > - include_directories : jsoncpp_include_directories, > - link_with : jsoncpp_lib, > -+ dependencies : thread_dep, > -+ link_args : no_asneeded, > - install : false) > - test( > - 'unittest_jsoncpp_test', > -@@ -89,7 +101,10 @@ test( > - jsontestrunner = executable( > - 'jsontestrunner', > - 'src/jsontestrunner/main.cpp', > -+ implicit_include_directories : false, > - include_directories : jsoncpp_include_directories, > -+ dependencies : thread_dep, > -+ link_args : no_asneeded, > - link_with : jsoncpp_lib, > - install : false) > - test( > Index: patches/patch-src_lib_json_json_value_cpp > =================================================================== > RCS file: patches/patch-src_lib_json_json_value_cpp > diff -N patches/patch-src_lib_json_json_value_cpp > --- patches/patch-src_lib_json_json_value_cpp 11 Feb 2018 09:05:59 -0000 > 1.2 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,40 +0,0 @@ > -$OpenBSD: patch-src_lib_json_json_value_cpp,v 1.2 2018/02/11 09:05:59 > rsadowski Exp $ > - > -XXX Revert commit 23c44d9f9eed8a7ff95daca9bd44526067c144c0 to avoid > -undefined references when linking cmake. > - > -commit 23c44d9f9eed8a7ff95daca9bd44526067c144c0 > -Author: Dhruv Paranjape <lord.dh...@gmail.com> > -Date: Sat Jul 8 12:00:47 2017 > - > -overload append function for R value references. > - > -Index: src/lib_json/json_value.cpp > ---- src/lib_json/json_value.cpp.orig > -+++ src/lib_json/json_value.cpp > -@@ -485,14 +485,6 @@ Value::Value(Value const& other) > - } > - } > - > --#if JSON_HAS_RVALUE_REFERENCES > --// Move constructor > --Value::Value(Value&& other) { > -- initBasic(nullValue); > -- swap(other); > --} > --#endif > -- > - Value::~Value() { > - switch (type_) { > - case nullValue: > -@@ -1146,10 +1138,6 @@ Value const& Value::operator[](CppTL::ConstString cons > - #endif > - > - Value& Value::append(const Value& value) { return (*this)[size()] = value; } > -- > --#if JSON_HAS_RVALUE_REFERENCES > -- Value& Value::append(Value&& value) { return (*this)[size()] = > std::move(value); } > --#endif > - > - Value Value::get(char const* key, char const* cend, Value const& > defaultValue) const > - { > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/devel/jsoncpp/pkg/PLIST,v > retrieving revision 1.3 > diff -u -p -u -p -r1.3 PLIST > --- pkg/PLIST 29 Aug 2017 09:14:16 -0000 1.3 > +++ pkg/PLIST 1 Nov 2020 20:02:54 -0000 > @@ -1,17 +1,15 @@ > @comment $OpenBSD: PLIST,v 1.3 2017/08/29 09:14:16 dcoppa Exp $ > -include/jsoncpp/ > -include/jsoncpp/json/ > -include/jsoncpp/json/allocator.h > -include/jsoncpp/json/assertions.h > -include/jsoncpp/json/autolink.h > -include/jsoncpp/json/config.h > -include/jsoncpp/json/features.h > -include/jsoncpp/json/forwards.h > -include/jsoncpp/json/json.h > -include/jsoncpp/json/reader.h > -include/jsoncpp/json/value.h > -include/jsoncpp/json/version.h > -include/jsoncpp/json/writer.h > +include/json/ > +include/json/allocator.h > +include/json/assertions.h > +include/json/config.h > +include/json/forwards.h > +include/json/json.h > +include/json/json_features.h > +include/json/reader.h > +include/json/value.h > +include/json/version.h > +include/json/writer.h > @lib lib/libjsoncpp.so.${LIBjsoncpp_VERSION} > lib/pkgconfig/jsoncpp.pc > share/doc/jsoncpp/ > -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE