With deps at 2024.06.18 things work:
```
$ git clone https://github.com/canonical/mir.git --depth 1
$ cd mir
$ apt build-dep . --snapshot 20240618T000000Z
$ dpkg-buildpackage -uc -us
```
Upgrading binutils causes a FTBFS
```
$ apt install binutils
# /var/log/apt/history.log
Commandline: apt install binutils
Upgrade: libctf-nobfd0:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), libbinutils:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), binutils-x86-64-linux-gnu:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), libctf0:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), binutils-common:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), libsframe1:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), libgprofng0:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1), binutils:amd64 (2.42-4ubuntu2, 2.42.50.20240618-1ubuntu1)
$ dpkg-buildpackage -uc -us
```
An excerpt from the errors:
```
/usr/bin/c++ -g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -ffile-prefix-map=/root/mir=. -flto=auto -ffat-lto-objects -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fdebug-prefix-map=/root/mir=/usr/src/mir-2.17.0 -Wdate-time -D_FORTIFY_SOURCE=3 -pthread -g -Wall -fno-strict-aliasing -Wnon-virtual-dtor -Wextra -fPIC -Werror -Wno-mismatched-tags -Wno-psabi -flto -ffat-lto-objects -Wno-error=null-dereference -Wno-error=overloaded-virtual -Wno-sign-compare -Wno-error=maybe-uninitialized -Wno-pedantic -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,--as-needed -Wl,--no-undefined "CMakeFiles/miral-test.dir/external_client.cpp.o" "CMakeFiles/miral-test.dir/runner.cpp.o" "CMakeFiles/miral-test.dir/wayland_extensions.cpp.o" "CMakeFiles/miral-test.dir/zone.cpp.o" "CMakeFiles/miral-test.dir/server_example_decoration.cpp.o" "CMakeFiles/miral-test.dir/org_kde_kwin_server_decoration.c.o" "CMakeFiles/miral-test.dir/server-decoration_wrapper.cpp.o" -o ../../bin/miral-test.bin ../libmir-test-assist.a ../../lib/libmiral.so.7 ../../src/miral/libmiral-internal.a /usr/lib/x86_64-linux-gnu/libwayland-client.so /usr/lib/x86_64-linux-gnu/libyaml-cpp.so ../../lib/libmirserver.so.60 /usr/lib/x86_64-linux-gnu/libuuid.so ../../src/platforms/common/server/libserver_platform_common.a ../../lib/libmirplatform.so.28 ../../lib/libmirwayland.so.5 /usr/lib/x86_64-linux-gnu/libboost_program_options.so.1.83.0 /usr/lib/x86_64-linux-gnu/libepoxy.so ../../lib/libmircommon.so.11 /usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.83.0 /usr/lib/x86_64-linux-gnu/libboost_atomic.so.1.83.0 -ldl /usr/lib/x86_64-linux-gnu/libxkbcommon.so ../../lib/libmircore.so.2 /usr/lib/x86_64-linux-gnu/libwayland-server.so ../../src/platforms/common/server/kms-utils/libkms_utils.a /usr/lib/x86_64-linux-gnu/libboost_iostreams.so.1.83.0 /usr/lib/x86_64-linux-gnu/libdrm.so /usr/lib/x86_64-linux-gnu/libEGL.so /usr/lib/x86_64-linux-gnu/libGLESv2.so /usr/lib/x86_64-linux-gnu/libudev.so /usr/lib/x86_64-linux-gnu/libgio-2.0.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libxcb.so /usr/lib/x86_64-linux-gnu/libxcb-composite.so /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so /usr/lib/x86_64-linux-gnu/libxcb-randr.so /usr/lib/x86_64-linux-gnu/libxcb-render.so /usr/lib/x86_64-linux-gnu/libXcursor.so /usr/lib/x86_64-linux-gnu/liblttng-ust.so /usr/lib/x86_64-linux-gnu/liblttng-ust-common.so /usr/lib/x86_64-linux-gnu/libdl.a /usr/lib/x86_64-linux-gnu/libfreetype.so -latomic /usr/lib/x86_64-linux-gnu/libapparmor.so /usr/lib/x86_64-linux-gnu/libboost_system.so.1.83.0 -lgtest_main ../../libGMock.a -lgtest /usr/bin/ld: /tmp/cccNaqUj.ltrans0.ltrans.o: in function `(anonymous namespace)::ExternalClient::ExternalClient() [clone .lto_priv.0]': /usr/src/mir-2.17.0/tests/miral/external_client.cpp:32:(.text+0x343e): warning: the use of `tmpnam' is dangerous, better use `mkstemp' /usr/bin/ld: ../../src/miral/libmiral-internal.a(input_device_config.cpp.o): in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char)': /usr/include/c++/13/bits/basic_string.h:1388:(.text._ZNKSt8__format14__formatter_fpIcE6formatIDF128_NS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_[_ZNKSt8__format14__formatter_fpIcE6formatIDF128_NS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_]+0x1587): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(char)' /usr/bin/ld: /usr/include/c++/13/bits/basic_string.h:1388:(.text._ZNKSt8__format14__formatter_fpIcE6formatIeNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_[_ZNKSt8__format14__formatter_fpIcE6formatIeNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_]+0x1524): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(char)' /usr/bin/ld: /usr/include/c++/13/bits/basic_string.h:1388:(.text._ZNKSt8__format14__formatter_fpIcE6formatIdNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_[_ZNKSt8__format14__formatter_fpIcE6formatIdNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_]+0x1527): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(char)' /usr/bin/ld: /usr/include/c++/13/bits/basic_string.h:1388:(.text._ZNKSt8__format14__formatter_fpIcE6formatIfNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_[_ZNKSt8__format14__formatter_fpIcE6formatIfNS_10_Sink_iterIcEEEENSt20basic_format_contextIT0_cE8iteratorET_RS7_]+0x1517): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(char)' /usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o): in function `std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)': /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x32c7): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x374c): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x3b86): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x3bac): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x3bd8): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()'
/usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o): in function `std::lock_guard<std::mutex>::lock_guard(std::mutex&)':
/usr/include/c++/13/bits/std_mutex.h:249:(.text+0x5d68): undefined reference to `std::mutex::lock()'
/usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o): in function `std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)':
/usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x6bdb): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()'
/usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x744f): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x74b6): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()'
/usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x74f6): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()'
/usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text+0x754f): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()'
/usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o):/usr/include/c++/13/bits/shared_ptr_base.h:1078: more undefined references to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' follow
/usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o): in function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::__str_concat<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<
char> > >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::value_type const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::size_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::allocator_type const&)': /usr/include/c++/13/bits/basic_string.h:3538:(.text.unlikely+0x607): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)' /usr/bin/ld: /usr/include/c++/13/bits/basic_string.h:3539:(.text.unlikely+0x615): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)' /usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o): in function `std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&)': /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text._ZN4YAML4Node5beginEv[_ZN4YAML4Node5beginEv]+0x47): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text._ZN4YAML4Node5beginEv[_ZN4YAML4Node5beginEv]+0x90): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text._ZN4YAML4Node3endEv[_ZN4YAML4Node3endEv]+0x47): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text._ZN4YAML4Node3endEv[_ZN4YAML4Node3endEv]+0x90): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: /usr/include/c++/13/bits/shared_ptr_base.h:1078:(.text._ZZNK4YAML6detail9node_data3getIiEEPNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEEENKUlSt4pairIS4_S4_EE_clESC_.isra.0[_ZNK4YAML6detail9node_data3getIiEEPNS0_4nodeERKT_St10shared_ptrINS0_13memory_holderEE]+0x4b): undefined reference to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' /usr/bin/ld: ../../src/miral/libmiral-internal.a(static_display_config.cpp.o):/usr/include/c++/13/bits/shared_ptr_base.h:1078: more undefined references to `std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_add_ref_copy()' follow
```
ProblemType: Bug
DistroRelease: Ubuntu 24.10
Package: binutils 2.42.50.20240618-1ubuntu1
ProcVersionSignature: Ubuntu 6.8.0-35.35-generic 6.8.4
Uname: Linux 6.8.0-35-generic x86_64
ApportVersion: 2.28.1-0ubuntu4
Architecture: amd64
CasperMD5CheckResult: unknown
CloudArchitecture: x86_64
CloudBuildName: server
CloudID: lxd
CloudName: lxd
CloudPlatform: lxd
CloudSerial: 20240622
CloudSubPlatform: LXD socket API v. 1.0 (/dev/lxd/sock)
Date: Mon Jun 24 17:04:03 2024
ProcEnviron:
LANG=C.UTF-8
PATH=(custom, no user)
SHELL=/bin/bash
TERM=screen-256color
XDG_RUNTIME_DIR=<set>
SourcePackage: binutils
UpgradeStatus: No upgrade log present (probably fresh install)
Failures can be observed in the PPA as well:
https:/ /launchpad. net/~mir- team/+archive/ ubuntu/ dev/+sourcepub/ 16234788/ +listing- archive- extra