Skip to content

Commit

Permalink
curl: add 8.0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
benoit-pierre authored and neheb committed Sep 16, 2023
1 parent e9400b0 commit 60a4e43
Show file tree
Hide file tree
Showing 17 changed files with 3,510 additions and 0 deletions.
44 changes: 44 additions & 0 deletions ci_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,50 @@
"libcurl4-gnutls-dev"
]
},
"curl": {
"_comment": [
"don't bother installing samba: not usable by the testuite due to smbd non-standard install name",
"don't install stunnel: it breaks the testsuite (certificates issues)",
"even with libpsl installed, the dependency is not detected…",
"ditto with openldap (“unknown version” at dependency check)"
],
"brew_packages": [
"gnutls",
"krb5",
"libidn2",
"libpsl",
"nghttp2",
"openldap",
"rtmpdump"
],
"debian_packages": [
"gnutls-bin",
"krb5-multidev",
"libgsasl-dev",
"libidn2-dev",
"libldap-dev",
"libnghttp2-dev",
"libpsl-dev",
"librtmp-dev",
"libssh2-1-dev",
"nghttp2-proxy",
"python3-impacket",
"samba",
"stunnel4",
"winbind"
],
"msys_packages": [
"gss",
"libpsl",
"libssh2",
"nghttp2",
"rtmpdump"
],
"build_options": [
"curl:ca_bundle=",
"curl:ca_path="
]
},
"dlfcn-win32": {
"_comment": "- Requires Windows",
"build_on": {
Expand Down
8 changes: 8 additions & 0 deletions releases.json
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,14 @@
"1.3.0-1"
]
},
"curl": {
"dependency_names": [
"libcurl"
],
"versions": [
"8.0.1-1"
]
},
"cxxopts": {
"dependency_names": [
"cxxopts"
Expand Down
10 changes: 10 additions & 0 deletions subprojects/curl.wrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[wrap-file]
directory = curl-8.0.1
source_url = https://github.com/curl/curl/releases/download/curl-8_0_1/curl-8.0.1.tar.xz
source_fallback_url = https://curl.se/download/curl-8.0.1.tar.xz
source_filename = curl-8.0.1.tar.xz
source_hash = 0a381cd82f4d00a9a334438b8ca239afea5bfefcfa9a1025f2bf118e79e0b5f0
patch_directory = curl

[provide]
dependency_names = libcurl
260 changes: 260 additions & 0 deletions subprojects/packagefiles/curl/lib/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,260 @@
# `curl_config.h` generation. {{

config_h = configure_file(
configuration: cdata,
input: '../meson/curl_config.h.meson',
output: 'curl_config.h',
)

add_project_arguments('-DHAVE_CONFIG_H', language: 'c')

# }}}

# To update this list: `make -f meson/rewrite.mk curl_lib_src`.
curl_lib_src = files(
'vauth/cleartext.c',
'vauth/cram.c',
'vauth/digest.c',
'vauth/digest_sspi.c',
'vauth/gsasl.c',
'vauth/krb5_gssapi.c',
'vauth/krb5_sspi.c',
'vauth/ntlm.c',
'vauth/ntlm_sspi.c',
'vauth/oauth2.c',
'vauth/spnego_gssapi.c',
'vauth/spnego_sspi.c',
'vauth/vauth.c',
'vquic/curl_msh3.c',
'vquic/curl_ngtcp2.c',
'vquic/curl_quiche.c',
'vquic/vquic.c',
'vssh/libssh.c',
'vssh/libssh2.c',
'vssh/wolfssh.c',
'vtls/bearssl.c',
'vtls/gskit.c',
'vtls/gtls.c',
'vtls/hostcheck.c',
'vtls/keylog.c',
'vtls/mbedtls.c',
'vtls/mbedtls_threadlock.c',
'vtls/nss.c',
'vtls/openssl.c',
'vtls/rustls.c',
'vtls/schannel.c',
'vtls/schannel_verify.c',
'vtls/sectransp.c',
'vtls/vtls.c',
'vtls/wolfssl.c',
'vtls/x509asn1.c',
'altsvc.c',
'amigaos.c',
'asyn-ares.c',
'asyn-thread.c',
'base64.c',
'bufref.c',
'c-hyper.c',
'cf-https-connect.c',
'cf-socket.c',
'cfilters.c',
'conncache.c',
'connect.c',
'content_encoding.c',
'cookie.c',
'curl_addrinfo.c',
'curl_des.c',
'curl_endian.c',
'curl_fnmatch.c',
'curl_get_line.c',
'curl_gethostname.c',
'curl_gssapi.c',
'curl_log.c',
'curl_memrchr.c',
'curl_multibyte.c',
'curl_ntlm_core.c',
'curl_ntlm_wb.c',
'curl_path.c',
'curl_range.c',
'curl_rtmp.c',
'curl_sasl.c',
'curl_sspi.c',
'curl_threads.c',
'dict.c',
'doh.c',
'dynbuf.c',
'easy.c',
'easygetopt.c',
'easyoptions.c',
'escape.c',
'file.c',
'fileinfo.c',
'fopen.c',
'formdata.c',
'ftp.c',
'ftplistparser.c',
'getenv.c',
'getinfo.c',
'gopher.c',
'h2h3.c',
'hash.c',
'headers.c',
'hmac.c',
'hostasyn.c',
'hostip.c',
'hostip4.c',
'hostip6.c',
'hostsyn.c',
'hsts.c',
'http.c',
'http2.c',
'http_aws_sigv4.c',
'http_chunks.c',
'http_digest.c',
'http_negotiate.c',
'http_ntlm.c',
'http_proxy.c',
'idn.c',
'if2ip.c',
'imap.c',
'inet_ntop.c',
'inet_pton.c',
'krb5.c',
'ldap.c',
'llist.c',
'md4.c',
'md5.c',
'memdebug.c',
'mime.c',
'mprintf.c',
'mqtt.c',
'multi.c',
'netrc.c',
'nonblock.c',
'noproxy.c',
'openldap.c',
'parsedate.c',
'pingpong.c',
'pop3.c',
'progress.c',
'psl.c',
'rand.c',
'rename.c',
'rtsp.c',
'select.c',
'sendf.c',
'setopt.c',
'sha256.c',
'share.c',
'slist.c',
'smb.c',
'smtp.c',
'socketpair.c',
'socks.c',
'socks_gssapi.c',
'socks_sspi.c',
'speedcheck.c',
'splay.c',
'strcase.c',
'strdup.c',
'strerror.c',
'strtok.c',
'strtoofft.c',
'system_win32.c',
'telnet.c',
'tftp.c',
'timediff.c',
'timeval.c',
'transfer.c',
'url.c',
'urlapi.c',
'version.c',
'version_win32.c',
'warnless.c',
'ws.c',
)

curl_lib = library(
'curl',
config_h,
curl_lib_src,
c_args: [
'-DBUILDING_LIBCURL',
curl_symbols_hiding_flags,
],
dependencies: [lib_deps, sys_deps],
gnu_symbol_visibility: curl_symbols_hiding_visibility,
include_directories: [CURL_PUBLIC_INC, CURL_INTERNAL_INC],
install: true,
version: '4.8.0',
)

pkg.generate(
curl_lib,
description: 'Library to transfer files with ftp, http, etc.',
name: 'libcurl',
unescaped_variables: (
# NOTE: variables with empty values are not allowed…
(
enabled_features.length() > 0 ? {
'supported_features': ' '.join(enabled_features),
} : {}
) + (
enabled_protocols.length() > 0 ? {
'supported_protocols': ' '.join(enabled_protocols),
} : {}
)
),
url: 'https://curl.se/',
)

curl_dep = declare_dependency(
include_directories: CURL_PUBLIC_INC,
link_with: curl_lib,
sources: config_h,
)

meson.override_dependency('libcurl', curl_dep)

lib_deps_iflags = []
foreach _dep : lib_deps
lib_deps_iflags += _dep.partial_dependency(
compile_args: true,
includes: true,
)
endforeach

curl_iflags_dep = declare_dependency(
dependencies: lib_deps_iflags,
include_directories: [CURL_PUBLIC_INC, CURL_INTERNAL_INC],
)

curl_ilib_dep = declare_dependency(
dependencies: [curl_dep, curl_iflags_dep, sys_deps],
)

curlu_flags = [
'-DCURL_STATICLIB',
'-DUNITTESTS',
]

curlu_lib = static_library(
'curlu',
config_h,
curl_lib_src,
c_args: [
curlu_flags,
'-DBUILDING_LIBCURL',
],
dependencies: [build_unittests, lib_deps],
include_directories: [CURL_PUBLIC_INC, CURL_INTERNAL_INC],
)

curlu_dep = declare_dependency(
dependencies: sys_deps,
include_directories: [CURL_INTERNAL_INC, CURL_PUBLIC_INC],
link_with: curlu_lib,
sources: config_h,
)

# vim: foldmethod=marker foldlevel=0
Loading

0 comments on commit 60a4e43

Please sign in to comment.