Skip to content

curl-impersonate: new port; py-curl-cffi: build against it - #33926

Merged
Schamschula merged 2 commits into
macports:masterfrom
barracuda156:curl
Aug 8, 2026
Merged

curl-impersonate: new port; py-curl-cffi: build against it#33926
Schamschula merged 2 commits into
macports:masterfrom
barracuda156:curl

Conversation

@barracuda156

Copy link
Copy Markdown
Contributor

Description

Build curl-cffi properly from source, do not use opaque binary blobs.
Drop restriction to arm64/x86_64.

Type(s)
  • bugfix
  • enhancement
  • security fix
Tested on

macOS 10.6.8 ppc
Xcode 3.2.6

macOS 10.15.8
Xcode 12.4

macOS 14.7.1
Xcode 15.4

Verification

Have you

  • followed our Commit Message Guidelines?
  • squashed and minimized your commits?
  • checked that there aren't other open pull requests for the same change?
  • referenced existing tickets on Trac with full URL in commit message?
  • checked your Portfile with port lint?
  • tried existing tests with sudo port test?
  • tried a full install with sudo port -vst install?
  • tested basic functionality of all binary files?
  • checked that the Portfile's most important variants haven't been broken?

@macportsbot

Copy link
Copy Markdown

Notifying maintainers:
@Schamschula for port py-curl-cffi.

@barracuda156 barracuda156 changed the title Curl curl-impersonate: new port; py-curl-cffi: build against it Aug 6, 2026
@nilFinx

nilFinx commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Thanks, I was looking for this :)
Problem, on OS X 10.9, in boringssl, I get:

:info:build /opt/local/var/macports/build/curl-impersonate-617d0337/work/curl-impersonate-2.0.0/deps/src/boringssl/ssl/extensions.cc:2009:41: error: 'get<std::unique_ptr<ssl_session_st, bssl::internal::Deleter>, bssl::SSLImportedPSK, std::unique_ptr<ssl_session_st, bssl::internal::Deleter>>' is unavailable: introduced in macOS 10.13
:info:build       const SSL_SESSION *session = std::get<UniquePtr<SSL_SESSION>>(psk).get();
:info:build                                         ^
:info:build /opt/local/libexec/llvm-16/bin/../include/c++/v1/variant:1577:22: note: 'get<std::unique_ptr<ssl_session_st, bssl::internal::Deleter>, bssl::SSLImportedPSK, std::unique_ptr<ssl_session_st, bssl::internal::Deleter>>' has been explicitly marked unavailable here
:info:build constexpr const _Tp& get(const variant<_Types...>& __v) {
:info:build                      ^
:info:build /opt/local/var/macports/build/curl-impersonate-617d0337/work/curl-impersonate-2.0.0/deps/src/boringssl/ssl/extensions.cc:2867:66: error: 'value' is unavailable: introduced in macOS 10.13
:info:build       !CBB_add_u16(&contents, hs->config->server_padding_request.value()) ||
:info:build                                                                  ^
:info:build /opt/local/libexec/llvm-16/bin/../include/c++/v1/optional:1001:27: note: 'value' has been explicitly marked unavailable here
:info:build     constexpr value_type& value() &
:info:build                           ^
:info:build /opt/local/var/macports/build/curl-impersonate-617d0337/work/curl-impersonate-2.0.0/deps/src/boringssl/ssl/extensions.cc:2912:67: error: 'value' is unavailable: introduced in macOS 10.13
:info:build   uint16_t padding_len = hs->client_requested_server_padding_size.value();
:info:build                                                                   ^
:info:build /opt/local/libexec/llvm-16/bin/../include/c++/v1/optional:1001:27: note: 'value' has been explicitly marked unavailable here
:info:build     constexpr value_type& value() &
:info:build                           ^
:info:build /opt/local/var/macports/build/curl-impersonate-617d0337/work/curl-impersonate-2.0.0/deps/src/boringssl/ssl/extensions.cc:2941:42: error: 'value' is unavailable: introduced in macOS 10.13
:info:build   if (hs->config->server_padding_request.value() != CBS_len(contents)) {
:info:build                                          ^
:info:build /opt/local/libexec/llvm-16/bin/../include/c++/v1/optional:1001:27: note: 'value' has been explicitly marked unavailable here
:info:build     constexpr value_type& value() &
:info:build                           ^

legacysupport.use_mp_libcxx yes fixed it.
Then, newest_darwin_requires_legacy should be 16 (10.12), right?

@barracuda156

barracuda156 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor Author

@nilFinx Thanks, I will add this.

Upd. Done

@barracuda156

Copy link
Copy Markdown
Contributor Author

@Schamschula Could you please take a look? curl-impersonate on its own is independent, but we need to fix Python binding too.

@Schamschula

Copy link
Copy Markdown
Contributor

I was waiting for your to merge the fix.

Thanks for taking this on!

@Schamschula
Schamschula merged commit d0395ee into macports:master Aug 8, 2026
3 checks passed
@barracuda156

Copy link
Copy Markdown
Contributor Author

@Schamschula Thank you!

@barracuda156
barracuda156 deleted the curl branch August 8, 2026 14:58
barracuda156 added a commit to macos-powerpc/powerpc-ports that referenced this pull request Aug 9, 2026
Largely non-functional, but fixes curl-impersonate for macOS 11+.
Also it is easier to have same versions.
See: macports/macports-ports#33926
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

4 participants