Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
...and make the use of std::hash consistent.
This will make it easier to remove the fix once the libc
implementation we use catches up with the C++ standard.
|
|
|
|
...using the new ignore-special tree variant.
|
|
...by removing unused subfolders and corresponding redundant checks
in the tests using it. Also fixes misues in tests of the GetSubtree
family of methods.
|
|
|
|
... but keep the option to not run the large tests.
|
|
|
|
|
|
|
|
Allow rules to set the timeout-scaling factor for their actions to
indicate that some actions are expected to take longer than others,
e.g., because they call a foreign build tool or are a very complex
end-to-end test.
|
|
|
|
|
|
|
|
... as those binaries might need run-libs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... as they could contain run-libs.
|
|
This allows better separation and, in particular, repositories
needed only for tests do not have to be provided for building the
tools. This also better documents which dependencies are only needed
for testing.
|
|
As local execution is tightly coupled to storage, also specify the
layout in the storage configuration. In this way, we have a central
place specifying the layout of just's cache directory and avoid
accidentally getting into conflicting situations. While there, also
move the execution root under the generation regime, to ensure that
left-over execution directories (e.g., after a forceful termination
of the program) eventually get cleaned up by garbage collection.
|
|
In the definition of a repository, the workspace root (given by
the key "repository") can contain either a description of that
root (where to fetch it, whast to expect) or simply a reference
to (the workspace root of) another repository. In the latter case,
the referenced repository has to be imported as a layer, just as if
had been specified as target_root, rule_root, or expression_root.
|
|
Add an option --plain pretending that the remote repository
configuration is the canonical single-repository one. In this way,
repositories not having a multi-repository configuration (e.g.,
code built with a foreign build system) can be imported in the same
way to a template, thus providing a more uniform interface. This
can also be useful, if a repository is to be imported completely
without its transitive dependencis.
|
|
|
|
|
|
|
|
Justbuild does not directly depend on re2, hence the indirect
dependency on re2 is taken care of by pkg-config. Nevertheless, it
is useful to have such a file for packaging that takes most of the
dependencies from the system, but uses some of the dependencies
bundled; a particular such use case is taking the bundled versions
of proto, grpc, and absl, as those might be packaged in an
incompatible version.
|
|
Using only our third-party descriptions, the build is independent of
PKG_CONFIG_PATH. However, when combinging our third-party descriptions
with dependencies taken from the system via pkg-config there is a
dependency of PKG_CONFIG_PATH due to those indirect dependencies.
Therefore, allow flexible PKG_CONFIG_PATH to support such a mixed
bootstrapping.
|
|
...caused by incorrectly setting and resetting the library internal
state and the misuse of pthreads in libgit2.
Normally, git_libgit2_init and git_libgit2_shutdown should span the
life of a worker thread in order to be safely used. However, due to
an incorrect implementation of libgit2's threadstate with pthreads,
on unix systems there is a race condition.
Until the use of pthread_key_t is corrected in libgit2, we need to
apply a workaround by always ensuring that the main thread is the
first thread reaching the GitContext constructor.
|
|
... using the repository and build configuration written out by the bootstrap
process.
|
|
...missed so far. These are not actionable from our side.
|
|
|
|
|
|
|
|
... and, in particular, do not read any rc files for just-mr
the user might have.
|
|
... in particular echo(1), which behaves different on dash
and sh.
|
|
|
|
|
|
... and drop unecessary IsTree() check.
|
|
|
|
|
|
|
|
|
|
While "gcc" is the name of the standard C compiler in the gnu
compiler family, the name of the compiler family, as expected by
the "COMPILER_FAMILY" configuration variable, actually is "gnu".
Fix this in the documentation string of the default export target.
|