2016-04-01 14:48 GMT+02:00 Michael Biebl <[email protected]>:
> 2016-04-01 14:33 GMT+02:00 Rainer Gerhards <[email protected]>:
>> 2016-03-31 18:38 GMT+02:00 Michael Biebl <[email protected]>:
>>> This affects the packages in sid as well, which are currently stuck at 
>>> 8.16.0.
>>> One aspect I particularly don't like about the libfastjson/json-c fork
>>> is, that the old namespace was kept.
>>> This can become tricky once libjson-c and libfastjson are loaded into
>>> the same process space. This can lead to unexpected behaviour.
>
> Obviously, this only poses a problem if the ABI changes in
> incompatible ways, like the type signature of a function.
>
>> You are absolutely right, I did not completely think this through and
>> screwed up in this regard. I need to move json-c compatibility to
>> source level (via CPP macros), if at all required. Changing the native
>> API from json_* to fjson_* is on my todo list, and probably it's a
>> good time to initiate this now.
>
> Either we rename it, or we promise to never break ABI compatibility
> with json-c. The former is more work initially, but gives you more
> freedom going onwards.
> The latter is possible too, see libjpeg (from IJG) and libjpeg-turbo.
> But it needs very careful maintenance of the library.

Renaming is the right thing to do. A core reason for the fork is that
we have other needs than the json-c community. One of things that I
explicitly mentioned is that we need some API breaks - e.g. for NUL
byte handling and to get rid of things that I really don't consider
part of the API (like the hashtable functions) and would like to get
rid of. Also, lots of internals will need to change in the longer
term, so there will be visible differences.

Note that I originally intended to work on that area later this year
(summer?), but were forced to do it urgently when the multithreading
bug came up. So what I have now is an "emergency release" (thus the
0.99 number). Again, I didn't see any way around this. Even if we had
assumed json-c would have accepted a PR to fix the issue, they would
not have done a release (cycle seems to be 1..2 years per release),
and even if they had done so, distros would still ship lots of old
releases (as they do now). So the only way to solve this situation
IMHO is to require current rsyslog to force a fixed json-c version
(aka libfastjson in that regard). Even if that comes at the price that
distros won't go past 8.16, but at least users then know why it
segfaults and have a path forward (building from source or using our
packages when available).

Rainer
>
> --
> Why is it that all of the instruments seeking intelligent life in the
> universe are pointed away from Earth?
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
> What's up with rsyslog? Follow https://twitter.com/rgerhards
> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
> sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T 
> LIKE THAT.
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to