chore: Fix Circle CI build failing #2755
3 checks passed!
Status: PASS
Details
✔️ Validator: TITLE
- ✔️ All the requisite validations passed for 'or' option
Input : chore: Fix Circle CI build failing
Settings :{"or":[{"must_include":{"regex":"^(feat|docs|chore|cleanup|fix|refactor|test|style|perf)(\\(\\w+\\))?:\\ .+$","message":"Semantic release conventions must be followed."}},{"must_include":{"regex":"^Bump [^ ]* from [^ ]* to [^ ]*$","message":"Dependabot PRs are exempt from semantic release conventions."}}]}
✔️ Validator: COMMIT
- ✔️ Your commit messages met the specified criteria
Input : chore: Fix Circle CI failing on a missing clang lib
The ubsan build fails due to the missing
/usr/lib/llvm-18/lib/clang/18/lib/linux/libclang_rt.ubsan_standalone-x86_64.a
which is provided by the libclang-rt-18-dev package, which would be
installed if we didn't disallow recommends.
Installing it manually is not practical, as using libclang-rt-18-dev
once clang updates to version 19 would be wrong, and installing
libclang-rt-*-dev would attempt to install all of them, either failing
or installing all of the clang version available along with them. Thus
allowing apt to automatically install recommended packages seems like
best solution.,chore: Disable -Wswitch-default and -Wunsafe-buffer-usage,chore: Fix cpplint failing to install,chore: Fix -Werror=maybe-uninitialized in a test
Settings : {"do":"commit","message":{"regex":"^((feat|docs|chore|cleanup|fix|refactor|test|style|perf)(\\(\\w+\\))?:\\ .+|Bump [^ ]* from [^ ]* to [^ ]*)","message":"Semantic release conventions must be followed."}}
✔️ Validator: DESCRIPTION
- ✔️ description must exclude '\[ \]'
Input : Circle CI's image got updated to use Ubuntu 24.04 (Noble Numbat), which:
- Changed a bit how clang is packaged --
libclang_rt.ubsan_standalone-x86_64.a
is no longer getting installed - Includes a newer clang with more enabled warnings in one the umbrella flags like -Weverything, -Wall, etc., like
-Wswitch-default
and-Wunsafe-buffer-usage
:-
We actually do not want a default in our switches, we want to explicitly handle every case and get warned when we don't, so
-Wswitch-default
should be disables -
-Wunsafe-buffer-usage
seems to be broken, it warns on things that are perfectly ok, like doingfoo[1] = 0;
whereuint32_t foo[4];
, e.g.warning:
/root/work/toxcore/network.c:966:9: error: unsafe buffer access [-Werror,-Wunsafe-buffer-usage] 966 | ip6.uint32[1] = 0; | ^~~~~~~~~~
on:
Line 966 in da43876
where
uint32
is:Line 200 in da43876
-
Settings : {"must_exclude":{"regex":"\\\\[ \\\\]","message":"There are incomplete TODO task(s) unchecked."}}