Summary: | devel/jsoncpp: Update to 1.6.2 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Steve Wills <swills> | ||||||||
Component: | Individual Port(s) | Assignee: | Steve Wills <swills> | ||||||||
Status: | Closed DUPLICATE | ||||||||||
Severity: | Affects Only Me | CC: | brd, johan, miwi, pi, rakuco | ||||||||
Priority: | --- | Keywords: | needs-qa, patch | ||||||||
Version: | Latest | Flags: | johan:
maintainer-feedback+
|
||||||||
Hardware: | Any | ||||||||||
OS: | Any | ||||||||||
URL: | https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=209407 | ||||||||||
Attachments: |
|
Description
Steve Wills
2015-06-17 20:09:59 UTC
Hi, there is another bug for this, https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200648, but that one upgrades to 0.10.2 instead of 1.6.2. From the project page: * 1.y.z is built with C++11. * 0.y.z can be used with older compilers. From that, I assume 1.x and 0.x are source-code compatible? If so, and if all FreeBSD platforms supports C++11 it should be OK to upgrade I guess. Note that I only use this port in a non-ported project, which is built using C++11. So for me personally, it should be OK as long as it is source code compatible! I went with 0.10.2 to make it easier to support 8.x (which is EoL the end of this month) and 9.x. I built all the stuff that depends on jsoncpp, which now includes all the stuff that depends on cmake as well, results are here: http://poudriere.mouf.net/poudriere/build.html?mastername=11amd64-default&build=2015-06-19_13h14m50s Only things broken are: security/quantis devel/hadoop2 science/pulseview net/userfw net/knemo-kde4 But I think they are broken for other reasons unrelated to the jsoncpp update. If I understand correct, FreeBSD 9.3 (EoL 31dec 2016) ships with GCC which does not support C++11 (https://wiki.freebsd.org/NewC++Stack). That would mean that using the 1.6 branch would render all those ports non-usable on 9.3, unless one installs clang? To me it seems better to go with the 0.10 branch rather than the 1.6 branch, for the above reasons (if it is correct). Is there any generic ports policies for this? (In reply to johan from comment #4) This is the reason I've put compiler:c++11-lib in the USES line in the port. With that, I think, it should be fine. Wouldn't that force quite a lot of ports to install clang (if compiler:c++11-lib requires clang; I may have my facts wrong here)? If that is the case, I'd probably go for 0.12 rather than 1.6... With that said, I'm having a hard time arguing for/against it, as it wont affect me (running 10.1 only). And since both of you are @freebsd.org people, I'll leave it to you to decide out what the best solution for the overall FreeBSD ports collection is. Also, if someone else which to take over maintainership (now when quite a lot of ports depends on this one), feel free to grab it! Please note that it'd be good to have bug 201057 fixed before updating. If i understand bug 201057 correctly, and the one's blocking on it, cmake currently does not build? Given this, it would be good if we can come to a decision on which version to follow, so we can get a fix commited. Let me try to clarify the situation. CMake is in a state where it is neither totally broken nor totally right: the port builds and ports that depend on it also work. However, the actual cmake binary has incorrect information in its ELF header and that causes some checks in pkg to fail as expected. This is caused by jsoncpp and its use of SCons, as it was not using the right commands to correctly version and name its shared library. This is what bug 201057 fixes. All of the above is orthogonal to this bug: it only updates jsoncpp to the latest 1.x version, but keeps using SCons and the problem persists. This is why I suggested to fix bug 201057 first, so that the port works as expected before we worry about updating it to a different version. Created attachment 158056 [details]
jsoncpp update patch with fix
Here's my updated patch with fixes the other issue.
Created attachment 158057 [details]
cmake patch
Here's a patch to cmake which is required after jsoncpp is updated.
Raphael is exactly right of course. I think what I have posted is OK, but further work will be needed. Specifically, we need to deal with the fact that jsoncpp is deprecating building with scons. Instead they want to build with cmake, but if we don't use the bundled cmake this can create a problem. It seems we have two options. One option is to go back to using the jsoncpp bundled with cmake, which isn't the newest. The other option, and what I think I prefer, is to create a cmake-bootstrap port which uses the bundled jsoncpp and is then used to build the jsoncpp port. Then cmake can be built without the bundled jsoncpp. I haven't worked on this yet, but plan to. With regards to jsoncpp; I'm good with patch 158056, my reservations on clang/gcc still standing though. FYI: The SONAME fix proposed in bug 201057 has now been commited by Raphael. Submitter is committer. Caouldn't be In Progress without an previous Assignee. Reset *** This bug has been marked as a duplicate of bug 209407 *** |