Adds an example plugin implementing an mTLS-enabled binary cache store (https+mtls:// scheme) using client certificates for authentication. Darwin fix: don't link liblix* into plugins (host resolves symbols at runtime via dynamic_lookup). Explicitly link curl so it binds to Nix-store libcurl, not /usr/lib/libcurl. This prevents the plugin's curl_easy_setopt calls from operating on the wrong libcurl instance. Test portability: BSD sed -i wrapper, OpenSSL -sha256 for cert signing, redirect test server output to log file. Change-Id: I652b987d3ac45e31df50ff4ba1f523294438c2b6
23 lines
838 B
Meson
23 lines
838 B
Meson
# Darwin: don't link liblix* into plugins (host process provides them at runtime).
|
|
# Explicitly link curl so it binds to Nix-store libcurl, not /usr/lib/libcurl.
|
|
if is_darwin
|
|
plugin_deps = [
|
|
liblixutil.partial_dependency(includes : true, compile_args : true),
|
|
liblixstore.partial_dependency(includes : true, compile_args : true),
|
|
liblixexpr.partial_dependency(includes : true, compile_args : true),
|
|
liblixfetchers.partial_dependency(includes : true, compile_args : true),
|
|
curl,
|
|
]
|
|
else
|
|
plugin_deps = [liblixutil, liblixstore, liblixexpr, liblixfetchers, curl]
|
|
endif
|
|
|
|
plugin_mtls_store = shared_module(
|
|
'plugin_mtls_store',
|
|
'plugin_mtls_store.cc',
|
|
dependencies : plugin_deps,
|
|
install : false,
|
|
build_by_default : true,
|
|
link_args : is_darwin ? shared_module_link_args : strict_shared_module_link_args,
|
|
)
|