mirror of
https://github.com/i3/i3.git
synced 2025-10-29 19:35:06 +00:00
Example in https://github.com/i3/i3/actions/runs/18260895234/job/51988635887?pr=6502 `i3-log-for-124-move.t`: ``` ../libi3/font.c:332:9: runtime error: signed integer overflow: 2147483641 + 11 cannot be represented in type 'int' #0 0x5611ce962d65 in draw_text_xcb ../libi3/font.c:332 #1 0x5611ce962d65 in draw_text ../libi3/font.c:376 #2 0x5611ce95de20 in draw_util_text ../libi3/draw_util.c:219 #3 0x5611ce947e7a in x_draw_decoration ../src/x.c:751 #4 0x5611ce94f93a in x_push_node ../src/x.c:1097 #5 0x5611ce94e9d8 in x_push_node ../src/x.c:1204 #6 0x5611ce94e9d8 in x_push_node ../src/x.c:1204 #7 0x5611ce94e9d8 in x_push_node ../src/x.c:1204 #8 0x5611ce952e9b in x_push_changes ../src/x.c:1373 #9 0x5611ce922d1f in tree_render ../src/tree.c:468 #10 0x5611ce8d1bbb in handle_run_command ../src/ipc.c:220 #11 0x5611ce8c87fe in ipc_receive_message ../src/ipc.c:1481 #12 0x7effc262b64a in ev_invoke_pending (/lib/x86_64-linux-gnu/libev.so.4+0x564a) (BuildId: cfcffb10ff16734dcc7d31d002a90940abff0323) #13 0x7effc262f22e in ev_run (/lib/x86_64-linux-gnu/libev.so.4+0x922e) (BuildId: cfcffb10ff16734dcc7d31d002a90940abff0323) #14 0x5611ce809d48 in ev_loop /usr/include/ev.h:841 #15 0x5611ce809d48 in main ../src/main.c:1229 #16 0x7effc1e41ca7 (/lib/x86_64-linux-gnu/libc.so.6+0x29ca7) (BuildId: def5460e3cee00bfee25b429c97bcc4853e5b3a8) #17 0x7effc1e41d64 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29d64) (BuildId: def5460e3cee00bfee25b429c97bcc4853e5b3a8) #18 0x5611ce80e770 in _start (/usr/src/i3/build/i3+0x230770) (BuildId: 181abde9a3dd28a8a4be68b90b9b710c8e280633) SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../libi3/font.c:332:9 ``` Unrelated but I fixed the build fails in `next` because of a false-positive: ``` In file included from ../include/all.h:40, from ../src/commands.c:10: ../src/commands.c: In function ‘cmd_floating’: ../include/log.h:30:33: error: ‘%s’ directive argument is null [-Werror=format-overflow=] 30 | #define DLOG(fmt, ...) debuglog("%s:%s:%d - " fmt, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__) | ^~~~~~~~~~~~~ ../src/commands.c:1193:13: note: in expansion of macro ‘DLOG’ 1193 | DLOG("should switch mode to %s\n", floating_mode); | ^~~~ cc1: all warnings being treated as errors ninja: build stopped: subcommand failed. ```
35 lines
1.6 KiB
Docker
35 lines
1.6 KiB
Docker
# vim:ft=Dockerfile
|
||
# Same as travis-base.Dockerfile, but without the test suite dependencies since
|
||
# we only build Debian packages on Ubuntu, we don’t run the tests.
|
||
FROM ubuntu:24.04
|
||
|
||
RUN echo force-unsafe-io > /etc/dpkg/dpkg.cfg.d/docker-apt-speedup
|
||
# Paper over occasional network flakiness of some mirrors.
|
||
RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry
|
||
|
||
# NOTE: I tried exclusively using gce_debian_mirror.storage.googleapis.com
|
||
# instead of httpredir.debian.org, but the results (Fetched 123 MB in 36s (3357
|
||
# kB/s)) are not any better than httpredir.debian.org (Fetched 123 MB in 34s
|
||
# (3608 kB/s)). Hence, let’s stick with httpredir.debian.org (default) for now.
|
||
|
||
# Install mk-build-deps (for installing the i3 build dependencies),
|
||
# lintian (for checking spelling errors),
|
||
# test suite dependencies (for running tests)
|
||
RUN apt-get update && \
|
||
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||
dpkg-dev devscripts git equivs \
|
||
build-essential clang \
|
||
lintian && \
|
||
rm -rf /var/lib/apt/lists/*
|
||
|
||
# Install i3 build dependencies.
|
||
COPY debian/control /usr/src/i3-debian-packaging/control
|
||
RUN apt-get update && \
|
||
DEBIAN_FRONTEND=noninteractive mk-build-deps --install --remove --tool 'apt-get --no-install-recommends -y' /usr/src/i3-debian-packaging/control && \
|
||
rm -rf /var/lib/apt/lists/*
|
||
|
||
# The user outside of Docker (GitHub Actions CI runner) and inside of Docker
|
||
# (root) are different, and newer versions of git error out in that scenario.
|
||
# To fix this, explicitly configure /usr/src/i3 as a safe directory:
|
||
RUN git config --global --add safe.directory /usr/src/i3
|