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

Reply via email to