Thanks! And thanks for the clarifications!

If I can help with anything (tests, etc), let me know.

On Mon, Mar 10, 2014 at 6:08 PM, Rainer Gerhards
<rgerha...@hq.adiscon.com> wrote:
> I now track this issue here:
>
> https://github.com/rsyslog/librelp/issues/1
>
> Rainer
>
>
> On Mon, Mar 10, 2014 at 4:49 PM, Rainer Gerhards
> <rgerha...@hq.adiscon.com>wrote:
>
>> On Mon, Mar 10, 2014 at 1:23 PM, Radu Gheorghe <radu.gheor...@sematext.com
>> > wrote:
>>
>>> Hi Rainer,
>>>
>>> Thanks for your answer. I see what you're saying and I agree.
>>>
>>> I'm [trying to] focus on a solution, so it sounds like, for my
>>> particular case (I want TCP+TLS and RELP), the solution would be to
>>> disable RELP+TLS? How can we do this:
>>> a) at ./configure time? I guess you can do the code change you were
>>> talking about previously, to disable TLS if the GnuTLS version found
>>> is too old?
>>>
>>
>> it acutally must be done in librelp, with some support for clients like
>> rsyslog.
>>
>>
>>> b) in the packages? I guess we'll have a rsyslog-relp and a
>>> rsyslog-relp-tls package?
>>>
>>>
>> no, simply because we cannot have relp with TLS on those platforms. So
>> there is one librelp package, and the API must be extended to tell clients
>> whether or not it supports TLS. I'll have a look at this soon.
>>
>>
>>> Another question that I have, which doesn't concern me right now, but
>>> still: how will one be able to listen for both TCP+TLS and RELP+TLS,
>>> since the two seem to require different GnuTLS versions?
>>
>>
>> NO! The problem is GnuTLS, which has broken it's API or ABI. So
>> ./configure must be run when the version of GnuTLS that you want to use is
>> installed. That's not an rsyslog-exclusive problem, I guess most other
>> programs will see the same issue.
>>
>>
>>> The only
>>> workaround I can think of is to have two daemons, and use different
>>> LD_LIBRARY_PATH variables when launching them, which point to the two
>>> versions of GnuTLS installed.
>>>
>>> Or maybe I'm doing something wrong. Maybe rsyslog is able to run both
>>> in some circumstances, and I didn't figure out how. Is there any info
>>> I can provide or anything I can do to solve the mistery?
>>>
>>>
>> build rsyslog from source AFTER you have moved to the new GnuTLS and all
>> will work well.
>>
>> Rainer
>>
>>
>>> Thanks a lot for looking into this!
>>>
>>> Best regards,
>>> Radu
>>>
>>> On Mon, Mar 10, 2014 at 1:00 PM, Rainer Gerhards
>>> <rgerha...@hq.adiscon.com> wrote:
>>> > On Mon, Mar 10, 2014 at 11:01 AM, Radu Gheorghe
>>> > <radu.gheor...@sematext.com>wrote:
>>> >
>>> >> Hi guys, thanks a lot for your replies!
>>> >>
>>> >> @Asaaf: I know installing a newer GnuTLS version will help make RELP
>>> >> work. The problem is, it breaks my TCP+TLS setup.
>>> >>
>>> >> @Rainer: If there's something wrong with my build, then the bug is in
>>> >> the packages, because I'm using the 8.1.6 RPMs. Maybe Andre can give
>>> >> some insight?
>>> >>
>>> >
>>> > This is also the answer to your text below. The packages are correct,
>>> but
>>> > this is a good example why I don't like to duplicate the distro
>>> maintainers
>>> > job (for "external packages").
>>> >
>>> > The rsyslog RPM is perfect, BUT you have installed a new version of
>>> GnuTLS
>>> > AND the new GnuTLS seems to be not backwards-compatible. So the new
>>> version
>>> > breaks any app that expects the older version. This is rsyslog, but if
>>> you
>>> > look further, I'd guess that most packages that rely on GnuTLS will be
>>> > broken after this upgrade.
>>> >
>>> > The reason is that usually the configure script is used to detect the
>>> > environment, and then the build assumes this environment and uses the
>>> > proper code path (using conditional compilation). Usually, this is not a
>>> > problem, as APIs remain stable. With GnuTLS, this unfortunately seems
>>> not
>>> > to be the case (I judge based on your report), because it looks like an
>>> > existing API is no longer supported by newer versions of the lib. IMHO
>>> > that's a bad thing to do, but if it is that way, you cannot get around
>>> it
>>> > other by re-building packages like rsyslog (starting with ./configure,
>>> as
>>> > usual).
>>> >
>>> > If we go now ahead and package GnuTLS as a system lib and ship it, we
>>> will
>>> > break many other packages. This is what the distro maintainers keep
>>> track
>>> > of, seeing such things and re-building all associated packages.
>>> Definitely
>>> > not something we want to do (not the mention we don't have the resources
>>> > even if we would want to).
>>> >
>>> > Shipping it is a integrated component is also very ugly. Just think of
>>> the
>>> > security incident, we would need to keep track of all those things.
>>> >
>>> > So I need to conclude that on a platform, no matter how recent it is,
>>> that
>>> > does not support the necessary core software stack, we need to disable
>>> > functionality. I agree that disabling RELP is too much, but the only
>>> decent
>>> > solution I see is to disable the RELP TLS feature. If someone wants it,
>>> he
>>> > or she can still install the required packages from source. We do have
>>> > instructions on how to do that, it's still inconvenient, but again,
>>> > everything else I strongly think is far beyond the scope of the rsyslog
>>> > project.
>>> >
>>> > Rainer
>>> >
>>> >>
>>> >> I'll answer to your comments inline:
>>> >>
>>> >> On Fri, Mar 7, 2014 at 6:08 PM, Rainer Gerhards
>>> >> <rgerha...@hq.adiscon.com> wrote:
>>> >> > On Fri, Mar 7, 2014 at 2:34 PM, Radu Gheorghe <
>>> >> radu.gheor...@sematext.com>wrote:
>>> >> [...]
>>> >> >> ####possible solutions####
>>> >> >> I think there's a bunch of things that can be improved. I'm writing
>>> >> >> this from the user's point of view, because I don't know the
>>> >> >> implementation details and what's technically possible:
>>> >> >> - imrelp.so shouldn't depend on GnuTLS. IMO people that don't need
>>> TLS
>>> >> >> shouldn't have this problem. Incidentally, this will also be a
>>> >> >> workaround for me, because it means I can live with the system's
>>> >> >> GnuTLS for lmnsd_gtls.so and use plain RELP.
>>> >> >>
>>> >> >
>>> >> > well, we could do a configure check and statically disable the code
>>> when
>>> >> > gnutls is too old. Anything more fancy requires a code contributions
>>> if I
>>> >> > look at the current backlog.
>>> >> >
>>> >>
>>> >> +1. I think this would be a good workaround for now.
>>> >>
>>> >> >
>>> >> >> - ideally, TCP+TLS should work with the new GnuTLS version
>>> >> >
>>> >> >
>>> >> > That's a new problem, they seem to have removed an API. TCP+TLS used
>>> to
>>> >> > work with any GnutTLS version. I routinely build both TCP/TLs + RELP
>>> on
>>> >> the
>>> >> > same system. Will look into it...
>>> >> >
>>> >>
>>> >> Thanks a lot! If you have any insight about this, please share :)
>>> >>
>>> >> >
>>> >> >> and imrelp
>>> >> >> should work with the old version
>>> >> >>
>>> >> >
>>> >> > That's technically problematic and requires downgrading of the
>>> feature
>>> >> set.
>>> >> > If I receive a code contribution, I am willing to consider that
>>> path.  I
>>> >> > won't do anything in that regard myself.
>>> >>
>>> >> I thought the situation is something like this, that's why I said
>>> >> "ideally"...
>>> >>
>>> >> >
>>> >> >
>>> >> >> - if the above is not possible, then I assume a certain version of
>>> >> >> GnuTLS is required. So it should be included/added in the rsyslog
>>> >> >> packages and installed in a separate location. I'm saying a separate
>>> >> >> location is needed so it doesn't interfere with the system (maybe
>>> >> >> there's some other software in the system that requires and older
>>> >> >> version, and rsyslog's upgrade breaks it)
>>> >> >>
>>> >> >>
>>> >> > I *really* don't like this idea, as this would mean we need to take
>>> care
>>> >> of
>>> >> > duplicating the rest of the distro packaning. Where to stop? GnutTLS?
>>> >> > Json-C, ...? In any case, there are also insufficient resources to do
>>> >> that.
>>> >> >
>>> >>
>>> >> I'm not sure if there's a "supported platforms" list anywhere, but I
>>> >> think everyone expects rsyslog to work with at least the latest stable
>>> >> versions of major distributions (RHEL, Debian, Ubuntu, etc). It sounds
>>> >> like there are three options:
>>> >> 1. support all the GnuTLS versions coming with those distributions. It
>>> >> sounds like it won't work, because of what you said above
>>> >> 2. provide (or find?) a package that would upgrade the distro's GnuTLS
>>> >> to provide what rsyslog needs. I guess it's the easiest approach,
>>> >> although it might break other apps that need GnuTLS and aren't
>>> >> forward-compatible
>>> >> 3. provide a package that would install the needed GnuTLS version in a
>>> >> separate location. We don't have to do it for all dependencies, only
>>> >> for those who turn out to be problematic.
>>> >>
>>> >> What's it going to be? 1) seems to be out because it's difficuly, 3)
>>> >> is a bit too hacky. So that leaves us with 2)? Or do you see other
>>> >> options?
>>> >>
>>> >> Still, with either 2) or 3), I think we still have to see how to make
>>> >> TCP work with newer GnuTLS versions. Or maybe there's something wrong
>>> >> with the packages. Can I help with anything to solve this, or should I
>>> >> wait for you to look into the issue?
>>> >>
>>> >> Best regards,
>>> >> Radu
>>> >> _______________________________________________
>>> >> 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.
>>>
>>>
>>>
>>> --
>>> Performance Monitoring * Log Analytics * Search Analytics
>>> Solr & Elasticsearch Support * http://sematext.com/
>>> _______________________________________________
>>> 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.



-- 
Performance Monitoring * Log Analytics * Search Analytics
Solr & Elasticsearch Support * http://sematext.com/
_______________________________________________
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