On Sun, Jun 02, 2024 at 03:16:22PM +0200, Attila Kovacs wrote: > > Next, the cross-build once again fails because the Makefile forcefully runs the > > test as well. > > I'm not sure what you mean 'forcefully'. I tried to send some better reasoning for my outrageously written english in [1]. It is because of both native and cross compiler installations. > The build runs 'make', and the > tests are not included in that. They are run by the separate 'make test' > target, which I believe is invoked by 'dh_auto_test'. If I understand it > correctly, that is exactly what 'dh_auto-test' is meant to do, i.e. running > some sort of self-testing of the build, which is exactly what 'make test' > does. Uhm. Unless I am mistaken, make will run the "make all" rule and in the all rule in your makefile, you've specified "test coverage" etc as seen here[2]. This will hence run at build time, and not just dh_auto_test. > > Running cross-compiled binary in native environment is not > > something that can realistically happen so it gives you the weird > > > > | bin/cio_file data/CIO_RA.TXT cio_ra.bin > > | bin/cio_file: 1: Syntax error: "(" unexpected > > > > as seen here[2] (when CI runs). > > > > Unfortunately, it seems cio_ra.bin is absolutely required to be installed and it > > is also arch specific from what I see in your package so we might not be able to > > move forward from here w/o finding a way to not generate the .bin file at > > runtime. > > That's not entirely true. The test uses the 'cio_ra.bin' from the build > directory (not the one that is optionally installed by 'dh_install'). > > However, you are correct, that the cio_ra.bin file is a platform-specific > (actually endian-specific) binary data file, and hence is normally produced > by executing 'cio_file' on the target platform -- which of course is not > possible when cross-compiling. I cannot think of an easy way to produce the > correct cio_ra.bin file when cross-compiling. Is that a show-stopper? Unfortunately, yes. > Alternatively, we could exclude the cio_ra.bin from the cross-build, and if > necessary not offer the 'supernovas-cio-data' sub-package for aarch64, > unless it cannot be provided via a suitable native build otherwise. It's an > optional package, which enhances the functionality of the library, but is > not required by it. It will be provided by the native build -- there should be no issue there as such. As such, I don't think it is possible to exclude selected binary packages from cross-compiling, but I might need to think a bit more here. [1]: https://lists.debian.org/debian-astro/2024/06/msg00002.html [2]: https://salsa.debian.org/debian-astro-team/supernovas/-/blob/master/Makefile?ref_type=heads#L76 Best, Nilesh
Attachment:
signature.asc
Description: PGP signature