On Thu, Mar 17, 2016 at 07:00:09PM +0100, Kamil Dudka wrote:
> On Thursday 17 March 2016 13:21:42 Przemek Klosowski wrote:
> I was (by mistake) speaking about loading libcurl's run-time dependencies
> by dlopen(), which is implemented for OpenLDAP in RHEL-5.  It used to cause 
> problems and was removed from upstream curl long time ago.

Judging by this discussion:

  https://github.com/curl/curl/issues/349

and:

>     https://lists.mayfirst.org/pipermail/vtls/2015-February/000020.html

that was because they implemented it badly.  They shouldn't dlopen the
external libraries directly.

libcurl should have a plugin system, so that the plugin for (eg)
libssh2 could be pushed off to $plugindir/libcurl-ssh2.so.  This is a
library containing curl code, which is linked normally (NOT using
dlopen) to libssh2.  When core libcurl starts, _it_ dlopens any
plugins found in $plugindir, and they register themselves with the
core libcurl.  The order of library loading is predictable, as if the
main program or another library linked to the main program is already
using libssh2, it won't be loaded a second time.

From there it would be easy to package the core libcurl, and the
plugins in separate RPMs.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v
--
devel mailing list
devel@lists.fedoraproject.org
http://lists.fedoraproject.org/admin/lists/devel@lists.fedoraproject.org

Reply via email to