summaryrefslogtreecommitdiff
path: root/etc
AgeCommit message (Collapse)Author
2024-04-30["CC", "defaults"] target: use "ADD_COMPILE_FLAGS"Klaus Aehlig
... to simplify definition.
2024-04-26deps: Update libarchive to v3.7.4Paul Cristian Sarbu
2024-04-19cleanup: remove left-over "arguments_config"Klaus Aehlig
... that is no longer used since d762bfa1953933dfac0a29a74523c25719396b8c
2024-04-19Toolchain: support passing through extra linker flagsKlaus Aehlig
2024-04-12Update grpc to v1.62.1 and all its dependenciesPaul Cristian Sarbu
- update boringssl to commit ae72a45 - update protobuf to v25.1 - update abseil to v20240116.0 (including patches) Also add mirrors for third-party dependencies where known and hashes correspond.
2024-04-12file chunker: increase chunk sizesKlaus Aehlig
As we use chunking also for reducing storage, we have to consider the overhead of block devices which is in the order of kB per file. So our target chunk size should be at least 2 orders of magnitude above this. This suggests to minimally aim for a chunk size of 128kB, a target size that also has the advantage the that maximal chunk size associated with this size is 1MB which is still well below the maximal transmission size of grpc allowing us to avoid the streaming API. As we're scaling everything up by a factor of 16, we also have to increase the number of bits in the involved masks by 4. We use this to also extend the window size by using the 2 most significant octets. Following the advice of the paper proposing FastCDC to spread out the ones roughly equally suggests 0x4444 as a suitable value for the two most significant octets. We also change the suggested extension of the remote-execution API accordingly. As the precise parameters for FastCDC when announced over the remote-execution APIs are still under discussion upstream, we simplify the name to not mention the target size.
2024-04-05grpc: hide dependency on google_rpc_statusKlaus Aehlig
grpc is used in the toolchain defaults for proto servive libraries. Still, it is typically built on its own, with its own toolchain, flags, etc. Now, grpc, however has a public dependency on a the rpc-status proto library, that the user may well use on their own, however building in their own way which can yield conflicts. To solve this, we hide the dependency on that proto library, as infrastructure libs should not make assumptions on user-servicable libraries. - First, we note that the dependency can be made a private one, which already solves the conflict on header files (which will essentially be the same, but might be defined in a different way). - Next, we note that the library at linking basically only acts as a default implementation; if the user provides their own version of the rpc-status library, we should prefer that anyway. As infrastructure is linked last, we have that default character anyway; the only thing to do is to rename the library that no staging conflict occurs.
2024-04-02Revert "third-party: Update lzma to v5.6.1"Klaus Aehlig
This reverts commit 0db6f248a04f5a23102b4208c1f28b3633c6ef8a. We have our own build description for lzma, hence we are likely not affected by CVE-2024-3094. Nevertheless, we should not encourage the use or distribution of an archive that contains a known backdoor. Reverting this commit also points us to a mirror that is still fetchable.
2024-04-02Clean up repo structure: compression is only a dependency of libarchiveKlaus Aehlig
... and not directly used by our tool.
2024-03-26third-party: Update libcurl to v8.6.0Paul Cristian Sarbu
Now the curl URL API always fails to parse the empty string, so our test was changed to reflect this.
2024-03-26third-party: Update libarchive to v3.7.2Paul Cristian Sarbu
2024-03-26third-party: Update catch2 to v3.5.3Paul Cristian Sarbu
2024-03-26third-party: Update libgit2 to v1.7.2Paul Cristian Sarbu
2024-03-26third-party: Update lzma to v5.6.1Paul Cristian Sarbu
Also updated the remote fetch repository, as the previous upstream repository has since been archived.
2024-03-26third-party: Update fmt to v10.2.1Paul Cristian Sarbu
Also updates the test-mixed-bootstrap script which must use the explicit library version.
2024-03-26third-party: Update json to v3.11.3Paul Cristian Sarbu
2024-03-26third-party: Update cli11 to v2.4.1Paul Cristian Sarbu
2024-03-14export of gsl: add missing flexible_config "ENV"Klaus Aehlig
As a library, that target depends implicitly on the toolchain, hence the already present export of "TOOLCHAIN_CONFIG", but also the environment for using that toolchain. So, export "ENV" as well.
2024-03-13Export more third-party top-level entry pointsKlaus Aehlig
... so that they can be served and hence the corresponding dependency can be absent.
2024-02-26Update remote execution protocol to support blob splicingSascha Roloff
The latest remote execution protocol version includes a blob splicing RPC and allows for the negotiation of the used chunking algorithm between client and server.
2024-02-15defaults: Support fully static linkingOliver Reiche
... of all produced binaries, including the intermediate ones: protoc and grpc_cpp_plugin.
2024-02-15Replace glibc sync stubs when linking pthreadsOliver Reiche
... glibc provides synchronization stubs for single-threaded environments as weak symobls. When linking pthreads, these weak symbols must be replaced by the strong symbols provided by the pthread library. For dynamically linking pthreads, this is done automatically. However, to support this for static linking, we must ensure to link the whole archive.
2024-02-02Fix export of remote APIKlaus T. Aehlig
As we patch that API, it also can implicitly depend on the toolchain (and hence its config), if we use a compiled implementation of patch. Making the TOOLCHAIN_CONFIG a flexible part of the config allow to, again, build static binaries as usual.
2024-01-22curl: Support selectively enabling non-HTTPOliver Reiche
2024-01-09Export ["@", "abs", "absl/base", "malloc_internal"]Klaus Aehlig
... as it is used by various libaries that are exported independently.
2024-01-08repos.json: ignore special in grpc source treeKlaus Aehlig
The source archive of grp contains upwards symlinks (that do not point outside the source directory). For a normal build this is not an issue; we still can generate a git tree from this archive and the parts we use of this archive never even touch a directory containing an upwards symlink. However, when just-mr desires to get this root from a just serve instance, the tree would have to be synced to the remote-execution CAS and hence the restriction applies that we only consider non-upwards relative symlinks as first-class citizens. Therefore, ignore all symlinks in this archive and this way, without changing the actual build, obtain an easy-to-manage root.
2023-12-21Export ["@", "json", "", "json"]Klaus Aehlig
... to allow target-level caching.
2023-11-29Do not drop curl for bootstrapOliver Reiche
... as it is part of just-mr, which is an essential part of the build system installation by now.
2023-11-22Patch remote execution protocol with blob splitting APISascha Roloff
2023-11-02bootstrap: Add libarchive dependencyPaul Cristian Sarbu
This is brought in by the tree-of-archive rpc of just serve. Also adds lzma and bzip2 as transitive dependencies.
2023-09-27Use standard tools for pkg-configKlaus Aehlig
2023-09-13just serve: Basic service implementation with commit-of-tree RPCPaul Cristian Sarbu
Initial version, to be extended later with other RPCs.
2023-09-01Update fmt to 10.1.1Klaus Aehlig
2023-08-28Silence warnings produced by older compilersOliver Reiche
... in particular options like '-Wno-array-parameter', which are needed to silence newer compilers are not supported by older ones. Hence, add '-Wno-unknown-warning-option' for all.
2023-08-28absl: avoid off64_tKlaus T. Aehlig
... to improve portability
2023-08-24imports: Silence warnings of external codeOliver Reiche
2023-08-24lzma: Add missing definesOliver Reiche
2023-08-21external: Update zlib to v1.3Paul Cristian Sarbu
Old K&R function definitions got cleaned upstream, which removes many warnings when building zlib with more recent compilers.
2023-08-21bundled absl: configure in a portable wayKlaus Aehlig
... by disabling auto-configuration. The problem that the result of this auto-configuration depends on the language standard used and may (and in case of libproto does) leak into public interfaces of consuming libraries; this would require every user of a library with a public dependency of absl to use the same language standard that library was built with. Such a requirement makes the rules hard to use in a portable way.
2023-08-18absl: Do not require OS and ARCHOliver Reiche
... and use "linux" as default for OS. If TARGET_ARCH is "arm" or not set, link against -latomic (for required targets).
2023-08-17absl: Drop unused variablesOliver Reiche
2023-08-16Introduce configuration variable TOOLCHAIN_CONFIGOliver Reiche
... to pass along toolchain settings for current and future toolchain definitions. Configuration variable COMPILER_FAMILY is replaced by TOOLCHAIN_CONFIG["FAMILY"].
2023-08-16just: Add defaults for patchOliver Reiche
2023-08-11external: Fix missing abseil export targetsPaul Cristian Sarbu
2023-08-11external: Clean up absl/random targetsPaul Cristian Sarbu
2023-08-11external: Update libcurl to v8.2.1Paul Cristian Sarbu
2023-08-11external: Update libarchive to v3.7.1Paul Cristian Sarbu
2023-08-11external: Update c-ares to v1.19.1Paul Cristian Sarbu
2023-08-09Update fmt libraryKlaus Aehlig
2023-08-08absl: export reused library "raw_logging_internal"Klaus Aehlig