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

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

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*

Take the CentOS curl src.rpm package and add exit 1 to the beginning of 
%check so that it exits quickly w/o removing the BUILDROOT in mock.

Start changing the configure switches disabling stuff and look at the 
library and the curl binary with ldd.

You'll see the configure switches reduce what the library links against 
but not what the binary links against. It's configure is clearly broken.

I tried disabling all the RHEL patches but the behavior is the same, 
it's not caused by a patch.