-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog
141 lines (135 loc) · 7.88 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
==================
0.8.2 / 2023-08-24
==================
* Fix the build 32 bit architectures
* supervisor: Handle inherited fd offset properly
* ci: Upgrade docker job to run multiple releases on Ubuntu and add Debian
* test: Fix building and testing test_cmd_clone only on Linux
* tests: Suppress yes: standard output: Broken pipe error
* tests: Allow running tests on installed firebuild
* debian/tests: Add autopkgtest running build time tests on installed firebuild
* supervisor: Support GLibc 2.38 passing "--" right after "sh -c"
* debian: Depend on at least the glibc version firebuild is built with
==================
0.8.1 / 2023-08-15
==================
* artwork: Fix the circle in the logo to be really round
* interceptor: Factor out some fd read write state handling from templates
* Report error code when a call reported only once fails
* interceptor: Treat successful copy_file_range() and sendfile() calls as reads and writes
* report: Include file name and process potentially writing the file in parallel
* report: List only directly and not transitively used filed in process details
* report: Deduplicate used file strings
* report: Register used files at the shortcut process when generating the report
* report: Deduplicate process environments
* supervisor: Run main loop until all interceptor connections and pipes are closed
* supervisor: Run all cleanup and destructors when FB_EXTRA_DEBUG is defined
* ci: Run coverage test on Debug build and increase required coverage
* interceptor: Intercept __vfork for glibc < 2.34
* supervisor: Show maximum resident set with "-d time"
* supervisor: Defer clearinf obsolete finalized ExecedProcess data
* supervisor: Free whole finalized process subtrees when it is safe
* interceptor: Fix calling handle_exit()
* supervisor: Track the common ancestor of processes keeping files open for writing
* supervisor: Track the process exec_point() for files opened for writing
* interceptor: Perform seccomp() calls in not intercepted processes
* Use global buffer size for paths
* supervisor: Don't use alloca() in garbage collection loops
0.8.0 / 2023-04-19
==================
* portability: Fixes to build on Mac OS X (interception is not functional yet)
* readme: Mention packages in the Arch Linux (AUR), Debian and Ubuntu archives
* interceptor: Intercept seccomp() calls and always return with EINVAL error
Fixes intercepting and caching man commands
* supervisor: Add default quirk to ignore successful statfs() and fstatfs() calls
Fixes shortcutting Doxygen
* tests: Fix building all binaries for valgrind-check target
* ci: Split running tests with valgrind to a separate job
* supervisor: Fall back to pread() when mmap() fails when hashing a file
Fixes shortcutting Java and javadoc again after their behavior changes
* ci: Use firebuild to speed up firebuild builds on Linux
* ci: Use latest Clang and scan-build versions
* supervisor: Cache "sh" again by default and
* supervisor: Skip caching command when parent sh -c "<command>" can be cached
* supervisor: Ignore missing configuration settings instead of crashing
* supervisor: Rename system_locations configuration entry to read_only_locations
* interceptor: Make relative or absolute unsuccessfully dlopen()-ed paths absolute
* supervisor: Treat unsuccessfully dlopen()-ed files using absolute filename as missing
Fixes shortcutting Intel Fortran Compiler (ifort).
* supervisor: Fix saved bytes accounting
* supervisor: Verify stored bytes accounting in Debug builds
* supervisor: Fix invalid stored cache size
* supervisor: Don't report missing possible debug files when debugging cache during GC
* ci: Add CodeQL analysis
* supervisor: Intercept ccache, but set it to run the original compiler
This allows relying on firebuild's caching by default even when ccache
is installed.
* supervisor: Shortcut only ccache and not child gcc/g++/etc. command
* tests: Don't disable ccache in test helper scripts
Ccache is now disabled within firebuild by default.
* Ignore communication with GNU Make's and Cargo's jobserver
This lets shortcutting processes that read tokens from the jobserver.
* interceptor: Ignore getcap syscall
It is used by Python and Node
* supervisor: Don't store hash of dependency directory listing for rustc
This allows shortcutting Rust + Cargo builds
* interceptor: Report getrandom syscalls
* interceptor: utimensat syscall accepts NULL pathname
* supervisor: Allow configuring maximal cache entry size with default of 250MB
* report: Include why shortcutting attempts failed
* debian: Update short and long package description
0.2.12 / 2023-02-23
==================
* Handle system(NULL)
* Detect inherited file backed fds that are not not seeked to the end in the interceptor
* report: Don't break line inside a single environment variable
* interceptor: Wide scanf variants return EOF, too, not WEOF
* interceptor: Fix syscall template to honor rettype and ifdef_guard
* supervisor: Prevent adding an fd with epoll_ctl() twice to avoid errors and crashes
* supervisor: Deduplicate dynamically allocated reasons of not shortcutting
* report: Include more verbose reasons for not not shortcutting
* report: Don't escape "/" in JSON strings
* report: Escape used files to not break the JSON format
* Dutch translation of debconf messages
* Spanish translation of the debconf template
* Brazilian Portuguese debconf templates translation
0.2.11 / 2023-01-21
==================
* debian: Update copyright
* debian: Initial German debconf translation
* supervisor: Pass through HOME environment variable
* tests: Skip testing orphan process handling on WSL
* tests: Don't test with fakeroot if fakeroot does not work
* debian: Build-depend on fakeroot (with <!nocheck>)
* tests: Ignore ENOSYS error from memfd_create, timerfd_create and eventfd
* tests: open(..., O_TMPFILE) returns EISDIR on WSL1, ignore that
* supervisor: Fall back to emulating copy_file_range on ENOSYS error
* supervisor: Fall back to renameat() if renameat2() return ENOSYS or EINVAL
* interceptor: __gettimeofday64 is added only in Glibc 2.34
* debian: Don't require node-d3 for building firebuild
* interceptor: Add #ifdef guards for a few functions not existing in glibc 2.27
* supervisor: Add minimal renameat2() wrapper when it is missing
* interceptor: Define gettimeofday() for Glibc < 2.31, too
* test: Ignore harmless extra symbols appearing with older toolchains
* interceptor: Ignore new public symbols appearing on Bionic
* common: Define CLONE_PIDFD and statx() structs and defines when they are missing
* debian: Armel autopkgtests are slower
* interceptor: Check and intercept missing __* variants
* interceptor: Check if *64 syscall variants are intercepted
* interceptor: Check the *_time64 bit variants of intercepted functions are also intercepted
* interceptor: Check if *64 bit variants of intercepted functions are also intercepted
* debian: Bump standards version No changes were needed
* supervisor: Handle faccessat() with unknown dirfd
* interceptor: MIPS has > 64 signals, don't assert() on that
* common: Don't decode SIGSTKFLT in debugging when it is not defined
* supervisor: Add --option=key=[] option to clear a configuration array
* readme: bc is a required test dependency
* interceptor: Intercept clone() with flags == CLONE_VFORK | SIGCHLD as a fork()
* interceptor: Intercept _Fork calling pthread_atfork handlers directly
* interceptor: Enable/disable interception of functions with #ifdef guards
* supervisor: Add LAUNCH_TYPE_POSIX_SPAWN
* interceptor: Don't check global intercepting_enabled in env_needs_fixup()
* interceptor: Factor out fixing up and restoring environment to a macro
* interceptor: Treat fallocate() and posix_fallocate() as pwrites
* report: Fix typo in the title
* debian: Show firebuild stats in autopkgtest