Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
On Thu, Nov 9, 2023 at 3:14 AM Wookey wrote: > On 2023-11-08 20:10 +0100, Martin Budaj wrote: > > as we still need to maintain Catch2 v2 API compatibility to run CI tests > > and builds on older Ubuntu images, we can't simply migrate to v3. > > Who is building 'latest' Therion on old Ubuntu? And are they getting > their sources from the Debian unstable package? Or from Upstream? GitHub Actions has Ubuntu 20.04 and 22.04 images: https://github.com/actions/runner-images We use it to run CI tests and to build the official installer. > > For now, I'll just enable using the bundled Catch2 instead of v3 installed > > in the system. > > That's not the right approach for the Debian package, and this bug is about > the debian package. > Debian unstable has catch 3 in it. We should use it, not an old bundled > catch2 copy. > Upstream builds and Ubuntu builds can do something different if need > be but that's not a good reason for the Debian package not to > DTRT. And in general I'd expect current Ubuntu to have catch3 too so > using the system version will be appropriate there too. Sure, but to do it properly takes more time then I could currently dedicate to this, as more changes are required: - adapt the C++ sources to Catch v3 - introduce #ifs to C++ sources to switch between bundled and system headers, as v3 names them differently - modify make and cmake build systems to handle this switching I plan to do it when time allows (upstream), but for now I think that it's better to have a workaround than nothing. Best wishes Martin
Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
On 2023-11-08 20:10 +0100, Martin Budaj wrote: > On Tue, Nov 7, 2023 at 4:25 PM Wookey wrote: > > > It looks like moving to catch3 and adding: > > target_link_libraries(test PRIVATE Catch2::Catch2WithMain) > > in the test targets should do the trick. > > > > Hi, > > as we still need to maintain Catch2 v2 API compatibility to run CI tests > and builds on older Ubuntu images, we can't simply migrate to v3. Who is building 'latest' Therion on old Ubuntu? And are they getting their sources from the Debian unstable package? Or from Upstream? > For now, I'll just enable using the bundled Catch2 instead of v3 installed > in the system. That's not the right approach for the Debian package, and this bug is about the debian package. Debian unstable has catch 3 in it. We should use it, not an old bundled catch2 copy. Upstream builds and Ubuntu builds can do something different if need be but that's not a good reason for the Debian package not to DTRT. And in general I'd expect current Ubuntu to have catch3 too so using the system version will be appropriate there too. Wookey -- Principal hats: Debian, Wookware, ARM http://wookware.org/ signature.asc Description: PGP signature
Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
On Wed, Nov 08, 2023 at 08:10:26PM +0100, Martin Budaj wrote: > On Tue, Nov 7, 2023 at 4:25 PM Wookey wrote: > > > It looks like moving to catch3 and adding: > > target_link_libraries(test PRIVATE Catch2::Catch2WithMain) > > in the test targets should do the trick. > as we still need to maintain Catch2 v2 API compatibility to run CI tests > and builds on older Ubuntu images, we can't simply migrate to v3. > > For now, I'll just enable using the bundled Catch2 instead of v3 installed > in the system. Note that doing so violates a "should" in Debian Policy: 4.13. Embedded code copies == Some software packages include in their distribution convenience copies of code from other software packages, generally so that users compiling from source don’t have to download multiple packages. Debian packages should not make use of these convenience copies unless the included package is explicitly intended to be used in this way. [17] If the included code is already in the Debian archive in the form of a library, the Debian packaging should ensure that binary packages reference the libraries already in Debian and the convenience copy is not used. If the included code is not already in Debian, it should be packaged separately as a prerequisite if possible. [18] If you (as upstream) are going to have a bundled code copy of catch, you could just bundle catch3 instead. Cheers, Olly
Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
On Tue, Nov 7, 2023 at 4:25 PM Wookey wrote: > It looks like moving to catch3 and adding: > target_link_libraries(test PRIVATE Catch2::Catch2WithMain) > in the test targets should do the trick. > Hi, as we still need to maintain Catch2 v2 API compatibility to run CI tests and builds on older Ubuntu images, we can't simply migrate to v3. For now, I'll just enable using the bundled Catch2 instead of v3 installed in the system. Martin
Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
On 2023-10-31 15:31 +0100, Martin Budaj wrote: >Thanks, I'll check it out in a week or so. >Martin We are not the only ones with this problem. This bug: #1054706 and this thread on debian-mentors: https://lists.debian.org/debian-mentors/2023/11/msg00078.html are helpful. Apparently catch2 changed the headers, but then catch 3 changed them back but required a statically-linked library. It looks like moving to catch3 and adding: target_link_libraries(test PRIVATE Catch2::Catch2WithMain) in the test targets should do the trick. More info at https://github.com/catchorg/Catch2/blob/devel/docs/migrate-v2-to-v3.md Wookey -- Principal hats: Debian, Wookware, ARM http://wookware.org/ signature.asc Description: PGP signature
Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
Thanks, I'll check it out in a week or so. Martin On Fri, Oct 27, 2023, 21:21 Lucas Nussbaum wrote: > Source: therion > Version: 6.1.8-1 > Severity: serious > Justification: FTBFS > Tags: trixie sid ftbfs > User: lu...@debian.org > Usertags: ftbfs-20231027 ftbfs-trixie > > Hi, > > During a rebuild of all packages in sid, your package failed to build > on amd64. > > > Relevant part (hopefully): > > /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 -DTHLINUX > -I/<>/build -I/<> -isystem /usr/include/webp > -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/utest.dir/utest-proj.cxx.o -MF > CMakeFiles/utest.dir/utest-proj.cxx.o.d -o > CMakeFiles/utest.dir/utest-proj.cxx.o -c /<>/utest-proj.cxx > > /<>/utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No > such file or directory > > 1 | #include > > | ^~ > > compilation terminated. > > [113/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thwarppt.cxx.o -MF > CMakeFiles/therion-common.dir/thwarppt.cxx.o.d -o > CMakeFiles/therion-common.dir/thwarppt.cxx.o -c > /<>/thwarppt.cxx > > [114/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion.dir/therion-main.cxx.o -MF > CMakeFiles/therion.dir/therion-main.cxx.o.d -o > CMakeFiles/therion.dir/therion-main.cxx.o -c > /<>/therion-main.cxx > > [115/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thsvg.cxx.o -MF > CMakeFiles/therion-common.dir/thsvg.cxx.o.d -o > CMakeFiles/therion-common.dir/thsvg.cxx.o -c /<>/thsvg.cxx > > [116/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thtexfonts.cxx.o -MF > CMakeFiles/therion-common.dir/thtexfonts.cxx.o.d -o > CMakeFiles/therion-common.dir/thtexfonts.cxx.o -c > /<>/thtexfonts.cxx > > [117/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thpdf.cxx.o -MF > CMakeFiles/therion-common.dir/thpdf.cxx.o.d -o > CMakeFiles/therion-common.dir/thpdf.cxx.o -c /<>/thpdf.cxx > > [118/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thwarpp.cxx.o -MF > CMakeFiles/therion-common.dir/thwarpp.cxx.o.d -o > CMakeFiles/therion-common.dir/thwarpp.cxx.o -c /<>/thwarpp.cxx > > [119/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thsymbolset.cxx.o -MF > CMakeFiles/therion-common.dir/thsymbolset.cxx.o.d -o > CMakeFiles/therion-common.dir/thsymbolset.cxx.o -c > /<>/thsymbolset.cxx > > ninja: build stopped: subcommand failed. > > dh_auto_build: error: cd build && LC_ALL=C.UTF-8 ninja -j8 -v returned > exit code 1 > > make[1]: *** [debian/rules:33: override_dh_auto_build
Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory
Source: therion Version: 6.1.8-1 Severity: serious Justification: FTBFS Tags: trixie sid ftbfs User: lu...@debian.org Usertags: ftbfs-20231027 ftbfs-trixie Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 -DTHLINUX > -I/<>/build -I/<> -isystem /usr/include/webp > -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/utest.dir/utest-proj.cxx.o -MF > CMakeFiles/utest.dir/utest-proj.cxx.o.d -o > CMakeFiles/utest.dir/utest-proj.cxx.o -c /<>/utest-proj.cxx > /<>/utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such > file or directory > 1 | #include > | ^~ > compilation terminated. > [113/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thwarppt.cxx.o -MF > CMakeFiles/therion-common.dir/thwarppt.cxx.o.d -o > CMakeFiles/therion-common.dir/thwarppt.cxx.o -c /<>/thwarppt.cxx > [114/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion.dir/therion-main.cxx.o -MF > CMakeFiles/therion.dir/therion-main.cxx.o.d -o > CMakeFiles/therion.dir/therion-main.cxx.o -c /<>/therion-main.cxx > [115/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thsvg.cxx.o -MF > CMakeFiles/therion-common.dir/thsvg.cxx.o.d -o > CMakeFiles/therion-common.dir/thsvg.cxx.o -c /<>/thsvg.cxx > [116/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thtexfonts.cxx.o -MF > CMakeFiles/therion-common.dir/thtexfonts.cxx.o.d -o > CMakeFiles/therion-common.dir/thtexfonts.cxx.o -c > /<>/thtexfonts.cxx > [117/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thpdf.cxx.o -MF > CMakeFiles/therion-common.dir/thpdf.cxx.o.d -o > CMakeFiles/therion-common.dir/thpdf.cxx.o -c /<>/thpdf.cxx > [118/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thwarpp.cxx.o -MF > CMakeFiles/therion-common.dir/thwarpp.cxx.o.d -o > CMakeFiles/therion-common.dir/thwarpp.cxx.o -c /<>/thwarpp.cxx > [119/168] /usr/bin/c++ -DFMT_SHARED -DIMG_API_VERSION=1 -DPROJ_VER=9 > -DTHLINUX -I/<>/build -I/<> -isystem > /usr/include/webp -isystem /<>/extern/quickhull -g -O2 > -ffile-prefix-map=/<>=. -fstack-protector-strong > -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection > -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++17 -Wall -Wextra -MD -MT > CMakeFiles/therion-common.dir/thsymbolset.cxx.o -MF > CMakeFiles/therion-common.dir/thsymbolset.cxx.o.d -o > CMakeFiles/therion-common.dir/thsymbolset.cxx.o -c > /<>/thsymbolset.cxx > ninja: build stopped: subcommand failed. > dh_auto_build: error: cd build && LC_ALL=C.UTF-8 ninja -j8 -v returned exit > code 1 > make[1]: *** [debian/rules:33: override_dh_auto_build-arch] Error 25 The full build log is available from: http://qa-logs.debian.net/2023/10/27/th