summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-14Release 1.1.3v1.1.3Klaus Aehlig
2023-07-14Update CHANGELOGOliver Reiche
2023-07-13just-mr: Auto detect archive compressionOliver Reiche
(cherry picked from d1cc993ff46b187e1f7669291f611d80b05b3bb3)
2023-07-13ArchiveOps: Support unpacking tar.bz2 archivesOliver Reiche
(cherry picked from 66c964931d0a4fdb4d0257ff20a1d3bafe63c159)
2023-07-13bytestream_server: store temporary files under the local-buil-rootAlberto Sartori
The bytestream server implementation (deployed by just execute) now stores the temporary files under $local_build_root/protocol-depenedent/generation-0 so that they can be garbage collected if "just exectue" is terminated before they are cleaned up. (cherry picked from ba28beba51ff7d495e5165471b96f7496bf585c2)
2023-07-13Document fixes in CHANGELOGKlaus Aehlig
2023-07-13just-mr: Fix handling of .gitignore files in git repositoriesPaul Cristian Sarbu
The command 'git add .' does not include paths found in .gitignore files in the directory tree where the command is issued. This is not the desired behaviour, as we expect for a tree with a given commit id to contain all of the entries, irrespective of their meaning to Git. This commit addresses the issue as described. For the just-mr.py script we modified the staging command to 'git add -f .'. For the compiled just-mr, simply adding the force flag to 'git_index_add_all' did not work as intended for files found in ignored subdirectories. This is a known libgit2 issue which has been fixed in v1.6.3. Until we can upgrade our libgit2 version, a workaround was implemented: we recursively read the directory entries ourselves and add each of them iteratively using 'git_index_add_bypath', making sure to ignore the root '.git' subtree (which cannot be staged). At the moment the handling of Git submodules remains an open issue, as Git does not allow '.git' subtrees to be forcefully added to the index, and thus such directory entries will currently not be considered as part of a git tree. This however is consistent behavior between Git and libgit2. (cherry picked from f234434a6fa2118b10765cff2f75bbc3196fec39)
2023-07-13FileSystemManager: Add recursive directory entries reader...Paul Cristian Sarbu
...allowing the skipping of certain subtrees if needed. This is useful, e.g., in simulating what a 'git add' call would do, which ignores all '.git' subdirectories. (cherry picked from 14715e3da452dd73363bc86f92cd9e5b9fdb3a7b)
2023-07-13git cas: only compute absolute path if not absolute alreadyKlaus Aehlig
... and in this way, continue to work correctly in the absence of a current working directory. (cherry picked from 06bb4f11a21aae5713d75b496145f6621302ae3a)
2023-07-13File Locking: only compute absolute path, if not absolute alreadyKlaus Aehlig
... and in this way, ensure we can lock files given by absolute path even if we don't have a working directory. While there, drop uncessary split just to combine of the file name. (cherry picked from 0039bf3dabf0068870e59acfa49683007d378c53)
2023-07-13just: improve error reporting on missing pwdKlaus Aehlig
... also, gracefully handle the case of a missing working directory when determining the current module, falling back to the top-level module. (cherry-picked from 3a5da87b7185c49567da97cd829733f9bb653b44)
2023-07-13Start working on 1.1.3Klaus Aehlig
2023-06-09Release 1.1.2v1.1.2Klaus Aehlig
2023-06-09file_system: Avoid malloc in 'fdless' copy/writeOliver Reiche
... to remove the risk of deadlocks on certain combinations of C++ standard library and libc when performing the copy/write in a child process. For 'fdless' copy/write, a child process is used to prevent the parent from getting polluted with open writable file descriptors (which might get inherited by other children that keep them open and can cause EBUSY errors). (cherry picked from 5142b99f94dcbf47274a5f32a1780cf865621401)
2023-06-09bootstrap: Improve OS/ARCH determinationOliver Reiche
... by making variables `os` and `arch` accessible to bootstrap hints. Furthermore, support the hints `os_map` and `arch_map` for mapping Justbuild's OS/ARCH to the terminology used by the repository. Values not covered by these maps will be passed through. (cherry picked from b7648b494024b00f8dabec8ab60a9990dd97bda7)
2023-06-09Start work on 1.1.2Klaus Aehlig
2023-06-02Release 1.1.1v1.1.1Klaus Aehlig
2023-06-02Avoid potential malloc between fork/execOliver Reiche
(cherry picked from commit d9ceae7315298445c975f571f0417a4553e0ae32)
2023-06-02Support FINAL_LDFLAGS variable for binariesOliver Reiche
... and set default stack size to 8 MB. (cherry picked from commit 9e45d1525b0fde12a08f7c376b5bf2c7bfbc9803)
2023-06-02man: Convert man pages to markdownOliver Reiche
... for easy processing with pandoc. (cherry picked from commit b6dbf64d641b9286e2d9d99adb20ae9dbdf2e1b9)
2023-06-02Start 1.1.1 development cycleOliver Reiche
2023-05-19Release 1.1.0v1.1.0Klaus Aehlig
2023-05-15Relase 1.1.0~beta2v1.1.0-beta2Klaus Aehlig
2023-05-15Add pkg-config target for re2Klaus Aehlig
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.
2023-05-15Third-party descriptions: be flexible on PKG_CONFIG_PATHKlaus Aehlig
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.
2023-05-15memcheck: fix race in libgit2...Paul Cristian Sarbu
...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.
2023-05-15Install instructions: describe package building of just-mrKlaus Aehlig
... using the repository and build configuration written out by the bootstrap process.
2023-05-12external: silence additional warnings from dependencies...Paul Cristian Sarbu
...missed so far. These are not actionable from our side.
2023-05-12Clean up export structure of remaining just dependenciesSascha Roloff
2023-05-12Clean up export structure of libabslSascha Roloff
2023-05-10man: Fix orgmode option for section idOliver Reiche
2023-05-09end-to-end tests: be independent of the user's home directoryKlaus Aehlig
... and, in particular, do not read any rc files for just-mr the user might have.
2023-05-09test: Do not rely on shell built-in behaviorOliver Reiche
... in particular echo(1), which behaves different on dash and sh.
2023-05-08tutorial/proto: Also show how to build just the CC bindingsKlaus Aehlig
2023-05-05rules: Test symbol and macro separately for auto configOliver Reiche
2023-05-05GitTree: Check optional before accessing itOliver Reiche
... and drop unecessary IsTree() check.
2023-05-04external: cleanup warnings from our dependenciesPaul Cristian Sarbu
2023-05-03grpc: fix build fail with protobuf in debug modePaul Cristian Sarbu
2023-05-03protobuf: silence invalid-noreturn warningPaul Cristian Sarbu
2023-05-03grpc: fix google_apis proto targets dependenciesPaul Cristian Sarbu
2023-05-02["", ""]: Fix docstring on COMPILER_FAMILYLeah Neukirchen
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.
2023-04-28Release 1.1.0~beta1v1.1.0-beta1Klaus Aehlig
2023-04-28external: Update protobuf to version 3.21.12Sascha Roloff
2023-04-28external: Update zlib to version 1.2.13Sascha Roloff
2023-04-28external: Update c-ares to version 1.17.2Paul Cristian Sarbu
2023-04-28external: Update ssl to version 6195bf8Paul Cristian Sarbu
2023-04-28external: Update re2 to version 2022-04-01Paul Cristian Sarbu
2023-04-28external: Update grpc to v1.53.0Sascha Roloff
This update also removes upb as external dependency. Co-authored-by: Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com>
2023-04-28external: Update google_apis to 2f9af29...Paul Cristian Sarbu
...as required by grpc v1.53.0
2023-04-28Update absl to LTS 20230125.0Sascha Roloff
Co-authored-by: Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com>