October 17, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #30 from Martin Nowak <code@dawg.eu> 2013-10-16 19:52:53 PDT ---
(In reply to comment #29)
> > Another option is to change the SPEC file and make it explicitly depend on the gnutls RPM (there is gnutls RPM in Fedora!). This will indirectly force user to install curl that is linked against gnutls. curl RPM package from Fedora repository can be re-built with gnutls as default TLS library.
> 
> This sounds like the way to go for this release. I'll take care of this.

Bad luck, there is not libcurl-gnutls in Fedora. I remember that I already
looked for that earlier.
I tried to patch the libphobos.so ELF to depend on libcurl.so.4 instead of
libcurl-gnutls.so.4 but that won't work because of the versioned symbols
(curl_easy_setup@CURL_GNUTLS_3).
So again I'm out of ideas other than to build on a fedora machine.
I'll have a look at the makefiles and see how easily we can fix this.
We can also delay releasing the fedora package.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 18, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #31 from Jordi Sayol <g.sayol@yahoo.es> 2013-10-18 00:19:12 PDT ---
DMD v2.064 beta2 still with curl versioned symbols:

$ objdump -x linux/lib32/libphobos2.so | grep " curl" | awk '{print $NF}'
curl_easy_cleanup@@CURL_OPENSSL_3
curl_easy_strerror@@CURL_OPENSSL_3
curl_easy_setopt@@CURL_OPENSSL_3
curl_easy_duphandle@@CURL_OPENSSL_3
curl_global_cleanup@@CURL_OPENSSL_3
curl_easy_init@@CURL_OPENSSL_3
curl_global_init@@CURL_OPENSSL_3
curl_easy_pause@@CURL_OPENSSL_3
curl_slist_append@@CURL_OPENSSL_3
curl_slist_free_all@@CURL_OPENSSL_3
curl_easy_perform@@CURL_OPENSSL_3

$ objdump -x linux/lib64/libphobos2.so | grep " curl" | awk '{print $NF}'
curl_easy_setopt@@CURL_GNUTLS_3
curl_slist_append@@CURL_GNUTLS_3
curl_slist_free_all@@CURL_GNUTLS_3
curl_global_cleanup@@CURL_GNUTLS_3
curl_easy_strerror@@CURL_GNUTLS_3
curl_easy_init@@CURL_GNUTLS_3
curl_easy_cleanup@@CURL_GNUTLS_3
curl_easy_duphandle@@CURL_GNUTLS_3
curl_easy_perform@@CURL_GNUTLS_3
curl_easy_pause@@CURL_GNUTLS_3
curl_global_init@@CURL_GNUTLS_3

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #32 from Martin Nowak <code@dawg.eu> 2013-10-24 00:14:09 PDT ---
(In reply to comment #13)
> - Compile/link into Ubuntu with a libcurl without versioned symbols, this requires an specific package not available on default repositories.

I have an idea for an intermediate solution to this.
We add a libcurl_stub.c to phobos that contains all functions used by phobos.

void curl_global_init() {}
void curl_easy_setop() {}
...

We build a libcurl.so from the stubs and use it when linking phobos.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #33 from Jacob Carlborg <doob@me.com> 2013-10-24 00:23:12 PDT ---
Is there no library without the @@ suffix that we can link with?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #34 from Jacob Carlborg <doob@me.com> 2013-10-24 00:25:15 PDT ---
Or using dynamic linking as Andrei suggested. Wouldn't this allow to link to any version of libcurl? Then the user can choose to have libcurl4-openssl-dev, libcurl4-nss-dev or libcurl4-gnutls-dev.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #35 from Jordi Sayol <g.sayol@yahoo.es> 2013-10-24 03:34:10 PDT ---
(In reply to comment #33)
> Is there no library without the @@ suffix that we can link with?

No. All curl libraries on Debian based OS systems have versioned symbols.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #36 from Jordi Sayol <g.sayol@yahoo.es> 2013-10-24 03:39:16 PDT ---
(In reply to comment #32)
> (In reply to comment #13)
> > - Compile/link into Ubuntu with a libcurl without versioned symbols, this requires an specific package not available on default repositories.
> 
> I have an idea for an intermediate solution to this.
> We add a libcurl_stub.c to phobos that contains all functions used by phobos.
> 
> void curl_global_init() {}
> void curl_easy_setop() {}
> ...
> 
> We build a libcurl.so from the stubs and use it when linking phobos.

For me it is fine, as long as it is a temporary measure.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710


Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull


--- Comment #37 from Martin Nowak <code@dawg.eu> 2013-10-24 05:38:20 PDT ---
(In reply to comment #36)
> For me it is fine, as long as it is a temporary measure.

Well the replacement is setting up real build scripts for the different
distributions.
Hopefully we'll get there for the next release.

https://github.com/D-Programming-Language/phobos/pull/1661

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #38 from Jordi Sayol <g.sayol@yahoo.es> 2013-10-24 07:08:34 PDT ---
(In reply to comment #37)
> (In reply to comment #36)
> > For me it is fine, as long as it is a temporary measure.
> 
> Well the replacement is setting up real build scripts for the different
> distributions.
> Hopefully we'll get there for the next release.
> 
> https://github.com/D-Programming-Language/phobos/pull/1661

With this patch we should install the new "libcurl_stub.so" too.

Its SONAME is the linking name "libcurl.so", so this will make the new Linux dmd/phobos packages incompatible with all other curl development libraries packages (cannot be installed together). For me this is not a problem.

If accepted, I need a new beta to fix all these new things (set dependencies, conflicts, include the new library, symlinks, etc.)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
October 24, 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10710



--- Comment #39 from Jordi Sayol <g.sayol@yahoo.es> 2013-10-24 07:53:33 PDT ---
(In reply to comment #37)
> (In reply to comment #36)
> > For me it is fine, as long as it is a temporary measure.
> 
> Well the replacement is setting up real build scripts for the different
> distributions.
> Hopefully we'll get there for the next release.
> 
> https://github.com/D-Programming-Language/phobos/pull/1661

Sorry, I misunderstood you :-/

This new "libcurl_stub.so" library is for linking purposes only, and not for run-time, right? Then the SONAME should be "libcurl.so.4" because this is the library name that "libphobos2.so.x.xx.x" will find on Linux systems. With "libcurl.so" SONAME, we will force final users to install libcurl development packages to run dmd/phobos programs.

Anyway, development phobos will still depending on libcurl development packages, which cannot be installed 32-bit and 64-bit together on multi-arch systems.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------