Merge changes Ief8e8ebc,Id3135db0,If1e76169 into main
* changes: libutil: delete unused boost context cruft build: remove approximately 400 seconds of CPU time (30%) fix: use http proxy for s3 access
This commit is contained in:
commit
3bf8819fa2
10
doc/manual/rl-next/http-proxy-for-s3.md
Normal file
10
doc/manual/rl-next/http-proxy-for-s3.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
synopsis: HTTP proxy environment variables are now respected for S3 binary cache stores
|
||||||
|
issues: [fj#433]
|
||||||
|
cls: [1788]
|
||||||
|
category: Fixes
|
||||||
|
credits: jade
|
||||||
|
---
|
||||||
|
|
||||||
|
Due to "legacy reasons" (according to the AWS C++ SDK docs), the AWS SDK ignores system proxy configuration by default.
|
||||||
|
We turned it back on.
|
11
meson.build
11
meson.build
|
@ -147,6 +147,17 @@ if should_pch
|
||||||
# Unlike basically everything else that takes a file, Meson requires the arguments to
|
# Unlike basically everything else that takes a file, Meson requires the arguments to
|
||||||
# cpp_pch : to be strings and doesn't accept files(). So absolute path it is.
|
# cpp_pch : to be strings and doesn't accept files(). So absolute path it is.
|
||||||
cpp_pch = [meson.project_source_root() / 'src/pch/precompiled-headers.hh']
|
cpp_pch = [meson.project_source_root() / 'src/pch/precompiled-headers.hh']
|
||||||
|
|
||||||
|
# Saves about 400s (30% at time of writing) from compile time on-cpu, mostly
|
||||||
|
# by removing instantiations of nlohmann from every single damned compilation
|
||||||
|
# unit.
|
||||||
|
# There is no equivalent in gcc.
|
||||||
|
if cxx.get_id() == 'clang'
|
||||||
|
add_project_arguments(
|
||||||
|
'-fpch-instantiate-templates',
|
||||||
|
language : 'cpp',
|
||||||
|
)
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
cpp_pch = []
|
cpp_pch = []
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -140,6 +140,8 @@ ref<Aws::Client::ClientConfiguration> S3Helper::makeConfig(
|
||||||
res->connectTimeoutMs = 5 * 1000;
|
res->connectTimeoutMs = 5 * 1000;
|
||||||
res->retryStrategy = std::make_shared<RetryStrategy>();
|
res->retryStrategy = std::make_shared<RetryStrategy>();
|
||||||
res->caFile = settings.caFile;
|
res->caFile = settings.caFile;
|
||||||
|
// Use the system proxy env-vars in curl for s3, which is off by default for some reason
|
||||||
|
res->allowSystemProxy = true;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,6 @@
|
||||||
#include "types.hh"
|
#include "types.hh"
|
||||||
#include "file-descriptor.hh"
|
#include "file-descriptor.hh"
|
||||||
|
|
||||||
namespace boost::context { struct stack_context; }
|
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
||||||
|
|
||||||
|
@ -612,23 +610,6 @@ struct FramedSink : nix::BufferedSink
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Stack allocation strategy for sinkToSource.
|
|
||||||
* Mutable to avoid a boehm gc dependency in libutil.
|
|
||||||
*
|
|
||||||
* boost::context doesn't provide a virtual class, so we define our own.
|
|
||||||
*/
|
|
||||||
struct StackAllocator {
|
|
||||||
virtual boost::context::stack_context allocate() = 0;
|
|
||||||
virtual void deallocate(boost::context::stack_context sctx) = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The stack allocator to use in sinkToSource and potentially elsewhere.
|
|
||||||
* It is reassigned by the initGC() method in libexpr.
|
|
||||||
*/
|
|
||||||
static StackAllocator *defaultAllocator;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Disabling GC when entering a coroutine (without the boehm patch).
|
/* Disabling GC when entering a coroutine (without the boehm patch).
|
||||||
mutable to avoid boehm gc dependency in libutil.
|
mutable to avoid boehm gc dependency in libutil.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue