Bug#1054689: therion: FTBFS: utest-proj.cxx:1:10: fatal error: catch2/catch.hpp: No such file or directory

2023-11-09 Thread Martin Budaj
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

2023-11-08 Thread Wookey
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

2023-11-08 Thread Olly Betts
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

2023-11-08 Thread Martin Budaj
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

2023-11-07 Thread Wookey
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

2023-10-31 Thread Martin Budaj
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

2023-10-27 Thread Lucas Nussbaum
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