Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
deps: vendor getdns
Co-Authored-By: Jiawen Geng <technicalcute@gmail.com>
Co-Authored-By: Richard Lau <rlau@redhat.com>
  • Loading branch information
3 people committed Apr 16, 2021
commit 8812cac5b238fde1d7a3b19067759c2c3798d6ff
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

# net

/deps/getdns @nodejs/net
/deps/cares @nodejs/net
/doc/api/dns.md @nodejs/net
/doc/api/dgram.md @nodejs/net
Expand Down
22 changes: 22 additions & 0 deletions configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,27 @@
dest='shared_cares_libpath',
help='a directory to search for the shared cares DLL')

shared_optgroup.add_argument('--shared-getdns',
action='store_true',
dest='shared_getdns',
help='link to a shared getdns DLL instead of static linking')

shared_optgroup.add_argument('--shared-getdns-includes',
action='store',
dest='shared_getdns_includes',
help='directory containing getdns header files')

shared_optgroup.add_argument('--shared-getdns-libname',
action='store',
dest='shared_getdns_libname',
default='getdns',
help='alternative lib name to link to [default: %default]')

shared_optgroup.add_argument('--shared-getdns-libpath',
action='store',
dest='shared_getdns_libpath',
help='a directory to search for the shared getdns DLL')

parser.add_argument_group(shared_optgroup)

parser.add_argument('--systemtap-includes',
Expand Down Expand Up @@ -1884,6 +1905,7 @@ def make_bin_override():
configure_library('nghttp2', output, pkgname='libnghttp2')
configure_library('nghttp3', output, pkgname='libnghttp3')
configure_library('ngtcp2', output, pkgname='libngtcp2')
configure_library('getdns', output)
configure_v8(output)
configure_openssl(output)
configure_intl(output)
Expand Down
216 changes: 216 additions & 0 deletions deps/getdns/configure_file.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
import sys
import re

index = sys.argv.index('--target');
inputs = sys.argv[1:index]
outputs = sys.argv[index + 1:]
assert len(inputs) == len(outputs)

IS_MAC = sys.platform.startswith('darwin')
IS_LINUX = sys.platform.startswith('linux')
IS_WINDOWS = sys.platform.startswith('win32')
IS_BSD = 'bsd' in sys.platform

vars = {
'prefix': '@prefix@',
'PACKAGE': '@PACKAGE@',
'PACKAGE_NAME': '@PACKAGE_NAME@',
'PACKAGE_VERSION': '@PACKAGE_VERSION@',
'PACKAGE_URL': '@PACKAGE_URL@',
'PACKAGE_BUGREPORT': '@PACKAGE_BUGREPORT@',
'PACKAGE_STRING': '@PACKAGE_STRING@',
'PACKAGE_TARNAME': '@PACKAGE_TARNAME@',
'GETDNS_COMPILATION_COMMENT': '',
'GETDNS_VERSION': '1.6.0',
'GETDNS_NUMERIC_VERSION': '0x01060000',
'GETDNS_API_VERSION': 'December 2015',
'API_VERSION': 'December 2015',
'API_NUMERIC_VERSION': '0x07df0c00',
'HAVE_ASSERT_H': True,
'HAVE_INTTYPES_H': True,
'HAVE_LIMITS_H': True,
'HAVE_SYS_LIMITS_H': False,
'HAVE_STDARG_H': True,
'HAVE_STDINT_H': True,
'HAVE_STDIO_H': True,
'HAVE_STDLIB_H': True,
'HAVE_STRING_H': True,
'HAVE_TIME_H': True,
'HAVE_UNISTD_H': not IS_WINDOWS,
'HAVE_FCNTL_H': not IS_WINDOWS,
'HAVE_SIGNAL_H': not IS_WINDOWS,
'HAVE_SYS_POLL_H': not IS_WINDOWS,
'HAVE_POLL_H': True,
'HAVE_RESOURCE_H': False,
'HAVE_SYS_TYPES_H': True,
'HAVE_SYS_STAT_H': True,
'HAVE_ENDIAN_H': True,
'HAVE_NETDB_H': not IS_WINDOWS,
'HAVE_ARPA_INET_H': not IS_WINDOWS,
'HAVE_NETINET_IN_H': not IS_WINDOWS,
'HAVE_NETINET_TCP_H': not IS_WINDOWS,
'HAVE_SYS_SELECT_H': not IS_WINDOWS,
'HAVE_SYS_SOCKET_H': not IS_WINDOWS,
'HAVE_SYS_SYSCTL_H': not IS_WINDOWS,
'HAVE_SYS_TIME_H': not IS_WINDOWS,
'HAVE_SYS_WAIT_H': not IS_WINDOWS,
'HAVE_WINDOWS_H': IS_WINDOWS,
'HAVE_WINSOCK_H': IS_WINDOWS,
'HAVE_WINSOCK2_H': IS_WINDOWS,
'HAVE_WS2TCPIP_H': IS_WINDOWS,
'GETDNS_ON_WINDOWS': IS_WINDOWS,
'USE_WINSOCK': IS_WINDOWS,
'HAVE_SSL': True,
'USE_DANESSL': False,
'HAVE_OPENSSL_SSL_H': True,
'HAVE_OPENSSL_EVP_H': True,
'HAVE_OPENSSL_ERR_H': True,
'HAVE_OPENSSL_RAND_H': True,
'HAVE_OPENSSL_CONF_H': True,
'HAVE_OPENSSL_ENGINE_H': True,
'HAVE_DSA_SIG_SET0': True,
'HAVE_DSA_SET0_PQG': True,
'HAVE_DSA_SET0_KEY': True,
'HAVE_RSA_SET0_KEY': True,
'HAVE_EVP_MD5': True,
'HAVE_EVP_SHA1': True,
'HAVE_EVP_SHA224': True,
'HAVE_EVP_SHA256': True,
'HAVE_EVP_SHA384': True,
'HAVE_EVP_SHA512': True,
'HAVE_EVP_DSS1': False,
'HAVE_EVP_DIGESTVERIFY': True,
'HAVE_EVP_MD_CTX_NEW': True,
'HAVE_HMAC_CTX_NEW': True,
'HAVE_NETTLE_GET_SECP_256R1': False,
'HAVE_NETTLE_GET_SECP_384R1': False,
'HAVE_TLS_CLIENT_METHOD': True,
'HAVE_OPENSSL_VERSION_NUM': True,
'HAVE_OPENSSL_VERSION': True,
'HAVE_SSL_CTX_DANE_ENABLE': True,
'HAVE_SSL_CTX_SET_CIPHERSUITS': True,
'HAVE_SSL_SET_CIPHERSUITES': True,
'HAVE_SSL_SET_CIPHERSUITS': True,
'HAVE_OPENSSL_INIT_CRYPTO': True,
'HAVE_SSL_DANE_ENABLE': True,
'HAVE_SSL_CTX_SET_CIPHERSUITES': True,
'HAVE_DECL_SSL_CTX_SET1_CURVES_LIST': True,
'HAVE_DECL_SSL_SET1_CURVES_LIST': True,
'HAVE_DECL_SSL_SET_MIN_PROTO_VERSION': True,
'HAVE_X509_GET_NOTAFTER': True,
'HAVE_X509_GET0_NOTAFTER': True,
'HAVE_PTHREAD': not IS_WINDOWS,
'HAVE_WINDOWS_THREADS': IS_WINDOWS,
'RUNSTATEDIR': False,
'TRUST_ANCHOR_FILE': '@PATH_TRUST_ANCHOR_FILE@',
'PATH_TRUST_ANCHOR_FILE': '/usr/local/etc/unbound/getdns-root.key',
'GETDNS_FN_RESOLVCONF': '@PATH_RESOLVCONF@',
'PATH_RESOLVCONF': '/etc/resolv.conf',
'GETDNS_FN_HOSTS': '@PATH_HOSTS@',
'PATH_HOSTS': '/etc/hosts',
'DNSSEC_ROADBLOCK_AVOIDANCE': True,
'HAVE_MDNS_SUPPORT': False,
'STUB_NATIVE_DNSSEC': True,
'MAXIMUM_UPSTREAM_OPTION_SPACE': '3000',
'EDNS_PADDING_OPCODE': '12',
'MAX_CNAME_REFERRALS': '100',
'DRAFT_RRTYPES': '1',
'EDNS_COOKIES': True,
'EDNS_COOKIE_OPCODE': '10',
'EDNS_COOKIE_ROLLOVER_TIME': '(24*60*60)',
'UDP_MAX_BACKOFF': '@MAX_UDP_BACKOFF@',
'MAX_UDP_BACKOFF': '1000',
'HAVE_DECL_GETENTROPY': True,
'HAVE_DECL_INET_PTON': True,
'HAVE_DECL_INET_NTOP': True,
'HAVE_WIN_DECL_INET_PTON': False,
'HAVE_WIN_DECL_INET_NTOP': False,
'HAVE_DECL_MKSTEMP': not IS_WINDOWS,
'HAVE_DECL_SIGEMPTYSET': True,
'HAVE_DECL_SIGFILLSET': True,
'HAVE_DECL_SIGADDSET': True,
'HAVE_DECL_STRPTIME': not IS_WINDOWS,
'HAVE_DECL_TCP_FASTOPEN': IS_LINUX,
'HAVE_DECL_TCP_FASTOPEN_CONNECT': IS_LINUX,
'HAVE_DECL_MSG_FASTOPEN': IS_LINUX,
'HAVE_FCNTL': not IS_WINDOWS,
'HAVE_GETTIMEOFDAY': not IS_WINDOWS,
'HAVE_IOCTLSOCKET': False,
'HAVE_SIGEMPTYSET': True,
'HAVE_SIGFILLSET': True,
'HAVE_SIGADDSET': True,
'HAVE_STRPTIME': not IS_WINDOWS,
'HAVE_SIGSET_T': True,
'HAVE__SIGSET_T': False,
'HAVE_BSD_STDLIB_H': IS_BSD,
'HAVE_BSD_STRING_H': IS_BSD,
'HAVE_DECL_STRLCPY': IS_BSD or IS_MAC,
'HAVE_DECL_ARC4RANDOM': IS_BSD,
'HAVE_DECL_ARC4RANDOM_UNIFORM': IS_BSD,
'HAVE_BSD_DECL_STRLCPY': IS_BSD or IS_MAC,
'HAVE_BSD_DECL_ARC4RANDOM': IS_BSD,
'HAVE_BSD_DECL_ARC4RANDOM_UNIFORM': IS_BSD,
'HAVE_STRLCPY': IS_BSD or IS_MAC,
'HAVE_ARC4RANDOM': IS_BSD,
'HAVE_ARC4RANDOM_UNIFORM': IS_BSD,
'HAVE_LIBUNBOUND': False,
'HAVE_UNBOUND_EVENT_H': False,
'HAVE_UNBOUND_EVENT_API': False,
'HAVE_UB_CTX_SET_STUB': True,
'HAVE_LIBIDN': False,
'HAVE_LIBIDN2': False,
'HAVE_NETTLE': False,
'HAVE_NETTLE_DSA_COMPAT_H': False,
'HAVE_NETTLE_EDDSA_H': False,
'HAVE_EVENT2_EVENT_H': False,
'HAVE_EVENT_BASE_NEW': False,
'HAVE_EVENT_BASE_FREE': False,
'DEFAULT_EVENTLOOP': 'select_eventloop',
'USE_POLL_DEFAULT_EVENTLOOP': False,
'STRPTIME_WORKS': not IS_WINDOWS,
'FD_SETSIZE': False,
'REQ_DEBUG': False,
'SCHED_DEBUG': False,
'STUB_DEBUG': False,
'DAEMON_DEBUG': False,
'SEC_DEBUG': False,
'SERVER_DEBUG': False,
'ANCHOR_DEBUG': False,
'KEEP_CONNECTIONS_OPEN_DEBUG': False,
'USE_SHA1': True,
'USE_SHA2': True,
'USE_GOST': True,
'USE_ECDSA': True,
'USE_DSA': True,
'USE_ED25519': True,
'USE_ED448': True,
'USE_OSX_TCP_FASTOPEN': IS_MAC,
'HAVE_NEW_UV_TIMER_CB': True,
'HAVE_TARGET_ENDIANNESS': True,
'TARGET_IS_BIG_ENDIAN': sys.byteorder == 'big',
'HAVE___FUNC__': False,
}

def replace_cmakedefine(s):
if s.startswith('#cmakedefine'):
name = re.split('\s+', s)[1]
if vars[name] != False:
return re.sub('#cmakedefine', '#define', s)
return ''
return s

def replace_cmakevar_match(match):
return vars[match.group(1)]

def replace_cmakevar(s):
return re.sub(r'@(\w+?)@', replace_cmakevar_match, s)

for i in range(len(inputs)):
with open(inputs[i]) as input_file:
input = input_file.read()

input = '\n'.join(map(replace_cmakedefine, input.splitlines()))
input = replace_cmakevar(input)

with open(outputs[i], 'w') as output_file:
output_file.write(input)
Loading