Re: [NEW] devel/rapidjson
On 05/16/21 18:05 PM, Stuart Henderson wrote: > On 2021/05/16 09:51, Anthony J. Bentley wrote: >> >> This packages 1.1.0 which was released in 2016. But rapidjson sees >> continuous development in Git, just no releases; see >> https://github.com/Tencent/rapidjson/issues/1759 >> >> As a result, many projects embed newer versions. Are we sure having >> this installed won't break any existing ports? Sorry, I didn't check if any other ports were already including this as a dependency. I found the following using grep in /usr/ports, but I guess that will miss some: devel/leatherman : bundles 1.0.2 in the upstream tar emulators/mgba/ : bundles an unknown version in the upstream tar games/barony : fetches release 1.1.0 in the port makefile games/ja2-stracciatella : bundles 0.11 in the upstream tar net/bro : bundles an unknown version in the upstream tar > > I agree with your concerns. Also ccls uses a specific commit id of > rapidjson as a git submodule: > https://github.com/MaskRay/ccls/tree/master/third_party > Yes, although CMakeLists.txt checks for minimum version 1.1.0 if USE_SYSTEM_RAPIDJSON is true. That might be because Linux distros which aggressively de-vendor dependencies are packaging that. I'm happy to bundle it in ccls and drop the separate port if that's preferred? Or ccls can fetch it directly like games/barony does. > Nick, I think you should just to generate a proper tar for ccls rather than > using the broken github autogenerated one. Sure. But does it need to be hosted permanently somewhere? > > (Also wondering, is ccls going to be another port that is going to need > work every time clang is updated?) I don't know, but I made this on 6.9 originally with clang/LLVM 10 and then rebuilt it without modification after updating to current with 11. -- Thanks, Nick
[NEW] devel/rapidjson
Hi, Please find attached a new port devel/rapidjson which I'm packaging as a dependency of ccls (a C/C++ language server) which I'll send out shortly. Description: RapidJSON is a self-contained and header-only JSON parser and generator for C++ with both SAX and DOM style APIs. It fully supports UTF-8, UTF-16, UTF-32 (LE & BE) and also optionally supports SSE2/SSE4.2 for acceleration. Categories: devel -- Thanks, Nick rapidjson.tgz Description: rapidjson.tgz
[NEW] devel/ccls
Hi, I've attached a new port for ccls, a C/C++ language server (for code completion, indexing, etc.). Description: ccls is a C/C++/Objective-C language server supporting most features of the LSP protocol including code completion, cross references, formatting, caller/callee hierarchies, symbol renaming, diagnostics, semantic highlighting, and more. Categories: devel This (and the rapidjson dependency) is my first attempt at making a port so appreciate any feedback. I've run portcheck and been using it myself for a few weeks with Emacs lsp-mode. -- Thanks, Nick ccls.tgz Description: ccls.tgz
Boost Asio and MSG_NOSIGNAL
Hi, Recently I was porting a program that uses Boost Asio to OpenBSD and found it was exiting frequently with SIGPIPE. This doesn't happen on Linux because on that platform Asio passes the MSG_NOSIGNAL flag to sendmsg(2). (It doesn't on FreeBSD either because Asio uses the SO_NOSIGNAL socket option there.) The patch below for Boost 1.67 sets MSG_NOSIGNAL on OpenBSD too. Could you add it to the patches in the ports tree? I've also submitted it upstream [1] but not sure if/when it will be applied. --- boost/asio/detail/impl/socket_ops.ipp.orig Sun Sep 20 09:48:05 2020 +++ boost/asio/detail/impl/socket_ops.ipp Sun Sep 20 09:52:00 2020 @@ -1178,7 +1178,7 @@ msghdr msg = msghdr(); msg.msg_iov = const_cast(bufs); msg.msg_iovlen = static_cast(count); -#if defined(__linux__) +#if defined(__linux__) || defined(__OpenBSD__) flags |= MSG_NOSIGNAL; #endif // defined(__linux__) signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec); @@ -1307,7 +1307,7 @@ msg.msg_namelen = static_cast(addrlen); msg.msg_iov = const_cast(bufs); msg.msg_iovlen = static_cast(count); -#if defined(__linux__) +#if defined(__linux__) || defined(__OpenBSD__) flags |= MSG_NOSIGNAL; #endif // defined(__linux__) signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec); [1] https://github.com/chriskohlhoff/asio/pull/549 -- Thanks, Nick