Re: F29 System Wide Change: OpenLDAP without Non-threaded Libraries
* 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
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
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
(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
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
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
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
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
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/