GithubHelp home page GithubHelp logo

Comments (39)

bagder avatar bagder commented on May 12, 2024 1

Works

from curl.

bagder avatar bagder commented on May 12, 2024

(You should remove sudo from the two first commands, but that's unrelated to this problem)

from curl.

icing avatar icing commented on May 12, 2024

Thanks for the report. I am still on macOS 14.3.1 where this works in curl 8.6.0 and the current dev version.

Have to upgrade macOS and test what changed there....

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

(You should remove sudo from the two first commands, but that's unrelated to this problem)

didn't help.

test what changed there....

from what I gathered, they moved to libressl from openssl, but I am not sure when this change happened.

from curl.

bagder avatar bagder commented on May 12, 2024

they moved to libressl from openssl, but I am not sure when this change happened.

Apple's build of curl has used libressl for a while, yes. So if you want to build a similar build as they do, then don't build with secure transport.

Your command line asks to build with secure transport as the TLS backend, which is another TLS library. One that Apple has deprecated since a while back.

If you check the config.log file, and probably search for "error" from the bottom up or something, does that help to explain this error?

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
configure:4906: $? = 0
configure:4895: gcc -v >&5
Apple clang version 15.0.0 (clang-1500.1.0.2.5)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
configure:4906: $? = 0
configure:4895: gcc -V >&5
clang: error: argument to '-V' is missing (expected 1 value)
clang: error: no input files
configure:4906: $? = 1
configure:4895: gcc -qversion >&5
clang: error: unknown argument '-qversion'; did you mean '--version'?
clang: error: no input files
configure:4906: $? = 1
configure:4895: gcc -version >&5
clang: error: unknown argument '-version'; did you mean '--version'?
clang: error: no input files
configure:4906: $? = 1
configure:4925: checking whether the C compiler works
configure:4947: gcc    conftest.c  >&5
configure:4951: $? = 0
configure:5001: result: yes
configure:5004: checking for C compiler default output file name
configure:5006: result: a.out
configure:5012: checking for suffix of executables
configure:5019: gcc -o conftest    conftest.c  >&5
configure:5023: $? = 0
configure:5046: result:
configure:5067: checking whether we are cross compiling
configure:5075: gcc -o conftest    conftest.c  >&5
configure:5079: $? = 0
configure:5086: ./conftest
configure:5090: $? = 0
configure:5105: result: no
configure:5110: checking for suffix of object files
configure:5132: gcc -c   conftest.c >&5
configure:5136: $? = 0
configure:5158: result: o
configure:5162: checking whether the compiler supports GNU C
configure:5181: gcc -c   conftest.c >&5
configure:5181: $? = 0
configure:5191: result: yes
configure:5202: checking whether gcc accepts -g
configure:5222: gcc -c -g  conftest.c >&5
configure:5222: $? = 0
configure:5264: result: yes
configure:5284: checking for gcc option to enable C11 features
configure:5299: gcc  -c -g -O2  conftest.c >&5
conftest.c:23:14: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
static char *e (p, i)
             ^
1 warning generated.
configure:5299: $? = 0
configure:5317: result: none needed
configure:5433: checking whether gcc understands -c and -o together
configure:5455: gcc -c conftest.c -o conftest2.o
configure:5458: $? = 0
configure:5455: gcc -c conftest.c -o conftest2.o
configure:5458: $? = 0
configure:5470: result: yes
configure:5493: checking how to run the C preprocessor
configure:5519: gcc -E  conftest.c
configure:5519: $? = 0
configure:5534: gcc -E  conftest.c
conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found
#include <ac_nonexistent.h>
         ^~~~~~~~~~~~~~~~~~
1 error generated.
configure:5534: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "curl"
| #define PACKAGE_TARNAME "curl"
| #define PACKAGE_VERSION "-"
| #define PACKAGE_STRING "curl -"
| #define PACKAGE_BUGREPORT "a suitable curl mailing list: https://curl.se/mail/"
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:5561: result: gcc -E
configure:5575: gcc -E  conftest.c
configure:5575: $? = 0
configure:5590: gcc -E  conftest.c
conftest.c:9:10: fatal error: 'ac_nonexistent.h' file not found
#include <ac_nonexistent.h>
         ^~~~~~~~~~~~~~~~~~
1 error generated.
configure:5590: $? = 1

this is the only block I did not see in the output before.

from curl.

icing avatar icing commented on May 12, 2024

Just updated to macOS 14.4 and ./configure --with-secure-transport continues to work. I am on a x86 machine, though.

from curl.

bagder avatar bagder commented on May 12, 2024

I too just updated to macOS 14.4 and ./configure --with-secure-transport continues to work. On an arm64 version.

$ ./src/curl -V
curl 8.7.0-DEV (aarch64-apple-darwin23.4.0) libcurl/8.7.0-DEV SecureTransport zlib/1.2.12 libidn2/2.3.7 nghttp2/1.59.0
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTP2 HTTPS-proxy IDN IPv6 Largefile libz NTLM SSL threadsafe UnixSockets

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

ok so what is different on our machines? both arm and intel are stuck on 14.4
Did you maybe have openssl installed? instead of libressl?
What logs can I provide that will help us find the issue?

from curl.

bagder avatar bagder commented on May 12, 2024

Did you maybe have openssl installed? instead of libressl?

That does not matter. The configure check in question just checks that you have selected at least one valid TLS library. When you select --with-secure-transport it won't care about libressl, openssl or any other TLS library than secure transport.

What logs can I provide that will help us find the issue?

I think you should double-check that the --with-secure-transport option you use has no funny unicode letter or anything somewhere.

Perhaps try a daily snapshot to see if the problem is rather in your autotools set.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

the code has not changed in the last 6 months. so I am not sure what is the issue.
How would the daily snapshots help? should I check my autotools version then?

from curl.

bagder avatar bagder commented on May 12, 2024

If the configure script from a daily snapshot works, it would suggest the issue is with your autotools setup.

from curl.

bagder avatar bagder commented on May 12, 2024

If the configure script from a daily snapshot does not work either, we need to continue digging.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

`
configure: Configured to build curl/libcurl:

Host setup: aarch64-apple-darwin23.4.0
Install prefix: /usr/local
Compiler: gcc
CFLAGS: -Qunused-arguments -O2 -Wno-pointer-bool-conversion -Werror=partial-availability
CPPFLAGS:
LDFLAGS: -framework CoreFoundation -framework CoreServices -framework SystemConfiguration -framework CoreFoundation -framework CoreServices -framework Security
LIBS: -lldap -lz

curl version: 8.7.0-20240314
SSL: enabled (Secure Transport)
SSH: no (--with-{libssh,libssh2})
zlib: enabled
brotli: no (--with-brotli)
zstd: no (--with-zstd)
GSS-API: no (--with-gssapi)
GSASL: no (libgsasl not found)
TLS-SRP: no (--enable-tls-srp)
resolver: POSIX threaded
IPv6: enabled
Unix sockets: enabled
IDN: no (--with-{libidn2,winidn})
Build docs: enabled (--disable-docs)
Build libcurl: Shared=yes, Static=yes
Built-in manual: enabled
--libcurl option: enabled (--disable-libcurl-option)
Verbose errors: enabled (--disable-verbose)
Code coverage: disabled
SSPI: no (--enable-sspi)
ca cert bundle: no
ca cert path:
ca fallback:
LDAP: enabled (ancient OpenLDAP)
LDAPS: enabled
RTSP: enabled
RTMP: no (--with-librtmp)
PSL: no (--with-libpsl)
Alt-svc: enabled (--disable-alt-svc)
Headers API: enabled (--disable-headers-api)
HSTS: enabled (--disable-hsts)
HTTP1: enabled (internal)
HTTP2: no (--with-nghttp2)
HTTP3: no (--with-ngtcp2 --with-nghttp3, --with-quiche, --with-openssl-quic, --with-msh3)
ECH: no (--enable-ech)
WebSockets: no (--enable-websockets)
Protocols: DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS IPFS IPNS LDAP LDAPS MQTT POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
Features: AsynchDNS HSTS HTTPS-proxy IPv6 Largefile NTLM SSL UnixSockets alt-svc libz threadsafe

WARNING: A selected TLS library (Secure-Transport) does not support TLS 1.3!
`

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

my autotools versions are:
autoreconf (GNU Autoconf) 2.71
automake (GNU automake) 1.16.5
libtool (GNU libtool) 2.4.7
if that helps

from curl.

bagder avatar bagder commented on May 12, 2024

This implies that the problem is not in curl. I don't know why you get this problem, as I believe the tools/versions you show should all work fine.

You can probably bisect your way to finding out exactly what tool/version to blame.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

but the versions I stated were the latest I found online, question is, what is different between my mac, and yours. I do not install these tools, I use xcode to get most of the basic tools, and I only replace curl (and now also libressl, because apple did not patch a vulnerability for months now apparently) to get the best functionality in my scripts.

So, what steps do I take to find the culprit? can you point me in the right direction?

from curl.

bagder avatar bagder commented on May 12, 2024

again, I don't think the versions are the problem - I believe there's something strange in your particular install. I build with that exact set on my Linux box. On my m1 mac the only difference is that I use autoconf 2.72 (from homebrew).

The machine that makes the daily snapshots has

  • autoconf 2.69
  • automake 1.16.3
  • libtool 2.4.6

So, what steps do I take to find the culprit? can you point me in the right direction?

If I were to do it, I would investigate the bad generated configure vs the working and how the check for the TLS libraries is so broken that it does not work - because it is a very basic check. Maybe by diffing parts of the working vs non-working scripts.

But it's not an easy nor quick task. Maybe ask the autotools team to see if they recognize this issue or have advice on how to proceed.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

So you think the issue is with autotools?
It's not just one machine, btw, it's all the machines in my org that are getting this script and are stuck on 8.5 even though they try to update.

from curl.

bagder avatar bagder commented on May 12, 2024

Clearly the configure script you generate is not working, and at the same time using the exact same set of sources, numerous others generate a fine configure script. So yes, I believe your set of autotools is somehow broken.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

My bad, I forgot the machine I was using to give you outputs was not an average machine. I had installed autotools manually on there, since they do not respond on macOS out of the box.
so this autoreconf -fi command does not exists on mos of my macs, and the ./configure of the snapshots fails with the same error about the TLS

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

@bagder can you please reopen this? see my last comment.

from curl.

bagder avatar bagder commented on May 12, 2024

I don't understand. In this comment it obviously worked for you. What changed?

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

I forgot that the computer I used was not a vanilla mac that is representative of the rest of the macs in my org. It has the autotools installed, among other tools that do not come with macOS or xcode cli.

from curl.

bagder avatar bagder commented on May 12, 2024

If you run the configure script we ship on your machine, does that work?

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

When you say your machine, do you mean my test machine or any other mac in the company?

from curl.

bagder avatar bagder commented on May 12, 2024
  1. You first reported an issue with configure when you generated it yourself.
  2. You then confirmed that using configure from a daily snapshot worked.
  3. You now want to re-open the issue because of unclear reasons.

I want you to explain the problem.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

from curl.

bagder avatar bagder commented on May 12, 2024
  1. Was tested on a test machine that has autotools installed hence should be disregarded.

Autotools being installed or present in a machine does not matter. Autotools is not used by configure.

If the configure scripts works or does not work based on you installing the autotools on the machine or not, then something is seriously wrong.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

from curl.

bagder avatar bagder commented on May 12, 2024

Again, only in the snapshots not in the release.

Are you saying you downloaded 8.6.0 and tried its configure script and it did not work? You did not mention this before.

Still, if the snapshot version works, then if there was a bug in the 8.6.0 version it seems to have been fixed. Has it not?

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

from curl.

bagder avatar bagder commented on May 12, 2024

So nobody else has this problem and you see it on 400 machines. It still makes me say that the problem is likely to be something in your environment. I don't know what more we can do to help you find it. Any suggestions?

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

from curl.

bagder avatar bagder commented on May 12, 2024

Can anyone try with a vanilla macos? I suspect you have other binaries that are not built into macos.

No other binaries would affect configure's check that a TLS library has been selected so it does not matter. Everyone has other binaries installed if they ever used their machine for something.

I would guess that a few users out there have built curl 8.6.0 successfully on macOS, just like me and @icing. And so have numerous mac CI jobs for all PRs we have merged. I think it is reasonable to suspect that your machines are the outliers here, not all others.

The configure script is a plain shell script. It works and runs on numerous operating systems equally fine. It works virtually everywhere. Except on your machines.

Aside from that, we tried logs, and it worked to install 8.5 on those 400 machines.

I don't know what "tried logs" mean.

The check that a TLS library has been selected was the same in the 8.5.0 configure as it is in the 8.6.0 configure. That check was introduced in 68d89f2 (shipped in 7.77.0) and has mostly remained the same since.

I propose you add debug outputs in the configure script and try to figure out what makes the test fail. It's a mystery to me.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

What I mean is I shared the output from the logs earlier in this thread, and we found nothing.
Can you please elaborate what exactly you mean by add debug outputs? I do not want to miss something.

from curl.

bagder avatar bagder commented on May 12, 2024

The failing output shows that the script thinks there was no TLS backend specified even though there was.

The script is a shell script that compares arguments and set a variable if the correct option is used.

I suggest that you debug why that shell script does not do what it is set out to do. Maybe by sprinkling debug outputs in it in suitable places.

from curl.

ryandesign avatar ryandesign commented on May 12, 2024

@MSBlueVn Can you provide the complete config.log file somewhere? The portion you posted above doesn't contain anything that seems relevant.

from curl.

MSBlueVn avatar MSBlueVn commented on May 12, 2024

Whatever this was, I just had more than 10 users use the same script, and update to 8.7.1 successfully. Might have been a bug in 8.6 that was fixed. Will update later on.

from curl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.