launchdarkly / c-server-sdk Goto Github PK
View Code? Open in Web Editor NEWLaunchDarkly Server-side SDK for C/C++
License: Apache License 2.0
LaunchDarkly Server-side SDK for C/C++
License: Apache License 2.0
Is your feature request related to a problem? Please describe.
I'm working on tooling to build a project based on c-server-sdk, and while figuring out how to supply the PCRE dependency, I came across its end-of-life announcement on pcre.org.
Describe the solution you'd like
I'd like to see this project use PCRE2 instead since it is actively maintained.
Describe alternatives you've considered
I'm moving forward with PCRE v8.45 regardless for now. I'm just filing this as a heads up since it sounds like the upgrade will eventually become a requirement after somebody discovers a vulnerability in 8.45 someday.
Additional context
http://pcre.org
https://groups.google.com/g/pcre2-dev/c/rIsMBudCAsU
There's a conflicting symbol name with OpenSSL's libcrypto if the sdk is built as a static library
/opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld.gold: error: vcpkg_installed/x64-linux/lib/libcrypto.a(libcrypto-lib-sha1_one.o): multiple definition of 'SHA1'
/opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld.gold: vcpkg_installed/x64-linux/lib/libldserverapi.a(sha1.c.o): previous definition here
I figured I would probably have better luck asking for a solution here than in openssl. redefining the symbol looks (at best) to be a dicey approach. Is there any sort of workaround, or could that maybe get renamed?
Description
Compilation of launchdarkly c-server-sdk fails on using the command
cmake --build .
Steps To reproduce
execute the below commands within the DockerFile(docker desktop: v4.10.1) installed in a mac with m1
#!/usr/bin/env bash
set -ev
git clone https://github.com/launchdarkly/c-server-sdk.git
git clone https://github.com/launchdarkly/c-server-sdk.git
cd c-server-sdk
mkdir build && cd build
cmake -D BUILD_TESTING=OFF -D BUILD_SHARED_LIBS=ON ..
cmake --build .
Error
#17 9.848 [ 62%] Building C object CMakeFiles/ldserverapi.dir/src/integrations/file_data.c.o
#17 9.864 /tmp/ci-LmJeFjvSre/c-server-sdk/src/integrations/file_data.c: In function 'readFile':
#17 9.864 /tmp/ci-LmJeFjvSre/c-server-sdk/src/integrations/file_data.c:74:15: error: comparison is always false due to limited range of data type [-Werror=type-limits]
#17 9.864 74 | if (c == EOF) {
#17 9.864 | ^~
#17 9.873 cc1: all warnings being treated as errors
#17 9.875 make[2]: *** [CMakeFiles/ldserverapi.dir/build.make:271: CMakeFiles/ldserverapi.dir/src/integrations/file_data.c.o] Error 1
#17 9.875 make[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/ldserverapi.dir/all] Error 2
#17 9.876 make: *** [Makefile:130: all] Error 2
SDK version
Any c-server-sdk on and after version 2.6.0
Hello, I would like to understand why was the -std=c89
flag recently introduced in the CMakeLists.txt
. Unfortunately it breaks builds with clang
. E.g.
:587:13: error: '_Bool' is a C99 extension [-Werror,-Wc99-extensions]
bool variationMatch = false;
^
/usr/lib/clang/11.0.1/include/stdbool.h:15:14: note: expanded from macro 'bool'
Could you please advise on this issue? Please see a similar one: protocolbuffers/upb#213
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.