[CentOS] curl build system is broken and so is mock

Thu Aug 4 01:15:26 UTC 2016
Alice Wonder <alice at domblogger.net>

On 08/03/2016 06:05 PM, Alice Wonder wrote:
> On 08/03/2016 05:54 PM, Alice Wonder wrote:
>> On 08/03/2016 05:45 PM, Alice Wonder wrote:
>>> On 08/03/2016 05:33 PM, Thomas Eriksson wrote:
>>>> On 08/03/2016 05:23 PM, Alice Wonder wrote:
>>>>> On 08/03/2016 05:20 PM, Alice Wonder wrote:
>>>>>> On 08/03/2016 05:11 PM, Alice Wonder wrote:
>>>>>>> I'm having a major frustration with curl.
>>>>>>>
>>>>>>> When building curl, if libssl.so.10 is present the curl binary WILL
>>>>>>> link
>>>>>>> against it.
>>>>>>
>>>>>> *snip*
>>>>>>
>>>>>> Go ahead and ldd on the CentOS curl binary and library - you will see
>>>>>> openssl linked even though the spec file has --disable-ssl and
>>>>>> --enable-nss
>>>>>>
>>>>>> It's clearly broken.
>>>>>>
>>>>>
>>>>> And building the CentOS curl package doesn't even BuildRequires the
>>>>> openssl-devel package.
>>>>>
>>>>> It's linking against a library it doesn't have the headers for.
>>>>>
>>>>> That's broken.
>>>>
>>>> I haven't looked at how curl is built, butit is likely that the build
>>>> links against some other package that is, in turn, built against
>>>> OpenSSL.
>>>>
>>>> You would not need the openssl-devel package to do that, only the
>>>> runtime libraries.
>>>>
>>>> It looks like that package could be libssh2...
>>>
>>>
>>> It's not libssh2 because I built libssh2 against LibreSSL and tested it
>>> with ldd and it doesn't use OpenSSL nor pull it in.
>>
>> *snip*
>>
>
> *snip*
>

*snip*

One thing left to try - a race condition - start building an 
intermediate curl and remove the libssl.so.10 from the buildroot with a 
shell after mock creates the builroot but before curl is building.

If cure then successfully builds, I should have an intermediary curl 
binary I can put in my mock sources to build the real curl so that 
libssl.so.10 isn't pulled in.

I don't like doing that.

I do suspect it is a flaw in how the curl build systems handles -lcrypto