Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2019-03-04 Thread Florian Weimer
* Florian Weimer:

> On 07/17/2018 04:08 PM, Kamil Dudka wrote:
>> On Tuesday, July 17, 2018 2:24:04 PM CEST Matus Honek wrote:
>>> Florian is right, the idea is to make changes to the source code
>>> (probably a downstream patch will be needed) such that the threaded
>>> library will be built twice, once with libldap soname and once with
>>> libldap_r soname, and the non-threaded libldap won't be shipped at
>>> all.
>>>
>>> The non-threaded version basically provides a subset of capabilities of
>>> the threaded version, which are additionally thread safe
>>> (i.e. mutexes). There shouldn't be really any noticeable change.
>>>
>>> Does this make sense?
>>
>> So can it happen that both the libraries will be loaded at the same time
>> by a single process (one of them for example through libcurl)?
>>
>> Will everything work as expected in this case?
>
> It's certainly quite risky, and many things can go wrong (dlopen of
> the dormant copy of the library, ELF constructors running twice).
>
> Matus, have you considered turning libldap.so into a linker script
> (referencing libdap_r.so) and libldap-2.4.so.2 into a stub which only
> depends on libldap_r-2.4.so.2?  The dynamic linker will then search
> libldap_r if the application links against libldap.

FYI, I have a downstream patch for this which is undergoing review.

Thanks,
Florian
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-23 Thread Florian Weimer

On 07/17/2018 04:08 PM, Kamil Dudka wrote:

On Tuesday, July 17, 2018 2:24:04 PM CEST Matus Honek wrote:

Florian is right, the idea is to make changes to the source code
(probably a downstream patch will be needed) such that the threaded
library will be built twice, once with libldap soname and once with
libldap_r soname, and the non-threaded libldap won't be shipped at
all.

The non-threaded version basically provides a subset of capabilities of
the threaded version, which are additionally thread safe
(i.e. mutexes). There shouldn't be really any noticeable change.

Does this make sense?


So can it happen that both the libraries will be loaded at the same time
by a single process (one of them for example through libcurl)?

Will everything work as expected in this case?


It's certainly quite risky, and many things can go wrong (dlopen of the 
dormant copy of the library, ELF constructors running twice).


Matus, have you considered turning libldap.so into a linker script 
(referencing libdap_r.so) and libldap-2.4.so.2 into a stub which only 
depends on libldap_r-2.4.so.2?  The dynamic linker will then search 
libldap_r if the application links against libldap.


Thanks,
Florian
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/2Z2R7J5IMEAY3O75V7H5P65FYNMS3Q7Y/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-17 Thread Kamil Dudka
On Tuesday, July 17, 2018 2:24:04 PM CEST Matus Honek wrote:
> Florian is right, the idea is to make changes to the source code
> (probably a downstream patch will be needed) such that the threaded
> library will be built twice, once with libldap soname and once with
> libldap_r soname, and the non-threaded libldap won't be shipped at
> all.
> 
> The non-threaded version basically provides a subset of capabilities of
> the threaded version, which are additionally thread safe
> (i.e. mutexes). There shouldn't be really any noticeable change.
> 
> Does this make sense?

So can it happen that both the libraries will be loaded at the same time
by a single process (one of them for example through libcurl)?

Will everything work as expected in this case?

Kamil

___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/ZSJ5XRXEZAX5WTIJCQWPO3GU6SO3IZSV/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-17 Thread Matus Honek
(reposting due to mailing list issues)

Florian Weimer  writes:

> On 07/10/2018 10:41 PM, Zbigniew Jędrzejewski-Szmek wrote:
>> On Tue, Jul 10, 2018 at 10:28:40PM +0200, Florian Weimer wrote:
>>> On 07/10/2018 10:19 PM, Zbigniew Jędrzejewski-Szmek wrote:
 On Tue, Jul 03, 2018 at 11:26:02AM +0200, Florian Weimer wrote:
> On 07/03/2018 10:13 AM, Jan Kurik wrote:
>> = Proposed System Wide Change: OpenLDAP without Non-threaded Libraries =
>> https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries
>
>> OpenLDAP will not ship non-threaded version of libldap. Instead,
>> libldap will be built with the same threading support as libldap_r.
>
> Why is this a system-wide change?  Is it actually about linking
> applications and libraries against libldap_r instead of libdap?

 No, the change says that anything that links to libldap will continue
 to do that, but that libldap will now be a copy of libdap_r, differing
 only the so-name.
>>>
>>> I don't see that.  The idea of the symbolic link is explicitly
>>> rejected, which I think implies also the use of a copy.
>> 
>> The way I understand this:
>> right now there's two libraries: libldap_r (threaded) and libldap 
>> (nonthreaded)
>> proposed state: two libraries: libldap_r (threaded) and libldap (threaded)
>> So anything which links to libldap will continue to do that, but despite the
>> name, libldap will really similar to libldap_r.
>
> Matus, would you please clarify what the plan is here?  Thanks.

Florian is right, the idea is to make changes to the source code
(probably a downstream patch will be needed) such that the threaded
library will be built twice, once with libldap soname and once with
libldap_r soname, and the non-threaded libldap won't be shipped at
all.

The non-threaded version basically provides a subset of capabilities of
the threaded version, which are additionally thread safe
(i.e. mutexes). There shouldn't be really any noticeable change.

Does this make sense?

-- 
Matus Honek
Associate Software Engineer
Red Hat Czech
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/YIZSDWWNUHYRUQAWJBX42PSHXABYYUUQ/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-11 Thread Florian Weimer

On 07/10/2018 10:41 PM, Zbigniew Jędrzejewski-Szmek wrote:

On Tue, Jul 10, 2018 at 10:28:40PM +0200, Florian Weimer wrote:

On 07/10/2018 10:19 PM, Zbigniew Jędrzejewski-Szmek wrote:

On Tue, Jul 03, 2018 at 11:26:02AM +0200, Florian Weimer wrote:

On 07/03/2018 10:13 AM, Jan Kurik wrote:

= Proposed System Wide Change: OpenLDAP without Non-threaded Libraries =
https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries



OpenLDAP will not ship non-threaded version of libldap. Instead,
libldap will be built with the same threading support as libldap_r.


Why is this a system-wide change?  Is it actually about linking
applications and libraries against libldap_r instead of libdap?


No, the change says that anything that links to libldap will continue
to do that, but that libldap will now be a copy of libdap_r, differing
only the so-name.


I don't see that.  The idea of the symbolic link is explicitly
rejected, which I think implies also the use of a copy.


The way I understand this:
right now there's two libraries: libldap_r (threaded) and libldap (nonthreaded)
proposed state: two libraries: libldap_r (threaded) and libldap (threaded)
So anything which links to libldap will continue to do that, but despite the
name, libldap will really similar to libldap_r.


Matus, would you please clarify what the plan is here?  Thanks.

Florian
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/XKVUZ4KQXXBWLLQNZKGVIXOTZM4EWHJF/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-10 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Jul 10, 2018 at 10:28:40PM +0200, Florian Weimer wrote:
> On 07/10/2018 10:19 PM, Zbigniew Jędrzejewski-Szmek wrote:
> >On Tue, Jul 03, 2018 at 11:26:02AM +0200, Florian Weimer wrote:
> >>On 07/03/2018 10:13 AM, Jan Kurik wrote:
> >>>= Proposed System Wide Change: OpenLDAP without Non-threaded Libraries =
> >>>https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries
> >>
> >>>OpenLDAP will not ship non-threaded version of libldap. Instead,
> >>>libldap will be built with the same threading support as libldap_r.
> >>
> >>Why is this a system-wide change?  Is it actually about linking
> >>applications and libraries against libldap_r instead of libdap?
> >
> >No, the change says that anything that links to libldap will continue
> >to do that, but that libldap will now be a copy of libdap_r, differing
> >only the so-name.
> 
> I don't see that.  The idea of the symbolic link is explicitly
> rejected, which I think implies also the use of a copy.

The way I understand this:
right now there's two libraries: libldap_r (threaded) and libldap (nonthreaded)
proposed state: two libraries: libldap_r (threaded) and libldap (threaded)
So anything which links to libldap will continue to do that, but despite the
name, libldap will really similar to libldap_r.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/5NSPRDE3JQ7Z423CV5MAMRWNJOUVGRFP/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-10 Thread Florian Weimer

On 07/10/2018 10:19 PM, Zbigniew Jędrzejewski-Szmek wrote:

On Tue, Jul 03, 2018 at 11:26:02AM +0200, Florian Weimer wrote:

On 07/03/2018 10:13 AM, Jan Kurik wrote:

= Proposed System Wide Change: OpenLDAP without Non-threaded Libraries =
https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries



OpenLDAP will not ship non-threaded version of libldap. Instead,
libldap will be built with the same threading support as libldap_r.


Why is this a system-wide change?  Is it actually about linking
applications and libraries against libldap_r instead of libdap?


No, the change says that anything that links to libldap will continue
to do that, but that libldap will now be a copy of libdap_r, differing
only the so-name.


I don't see that.  The idea of the symbolic link is explicitly rejected, 
which I think implies also the use of a copy.


Thanks,
Florian
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/GXZKCAGQVQJSPPTI5FNJJHBYMPYNB6U4/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-10 Thread Zbigniew Jędrzejewski-Szmek
On Tue, Jul 03, 2018 at 11:26:02AM +0200, Florian Weimer wrote:
> On 07/03/2018 10:13 AM, Jan Kurik wrote:
> >= Proposed System Wide Change: OpenLDAP without Non-threaded Libraries =
> >https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries
> 
> >OpenLDAP will not ship non-threaded version of libldap. Instead,
> >libldap will be built with the same threading support as libldap_r.
> 
> Why is this a system-wide change?  Is it actually about linking
> applications and libraries against libldap_r instead of libdap?

No, the change says that anything that links to libldap will continue
to do that, but that libldap will now be a copy of libdap_r, differing
only the so-name.

Zbyszek
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/PKC2NLR5WMBHCH4Q4EVULV77DKQM7XU5/


Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries

2018-07-03 Thread Florian Weimer

On 07/03/2018 10:13 AM, Jan Kurik wrote:

= Proposed System Wide Change: OpenLDAP without Non-threaded Libraries =
https://fedoraproject.org/wiki/Changes/OpenLDAPwithoutNonthreadedLibraries



OpenLDAP will not ship non-threaded version of libldap. Instead,
libldap will be built with the same threading support as libldap_r.


Why is this a system-wide change?  Is it actually about linking 
applications and libraries against libldap_r instead of libdap?


Thanks,
Florian
___
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/FGUGAH6MHAWHZSAOPAZTXNRODVQQ4MUB/