Hi Helmut, Rafael, On Mon, Jul 29, 2019 at 00:15:39 +0200, Rafael Laboissière wrote: > * Helmut Grohne <hel...@subdivi.de> [2019-07-28 22:32]: > > > Package: liboctave-dev > > Version: 4.4.1-6 > > Tags: patch > > User: debian-cr...@lists.debian.org > > Usertags: cross-satisfiability > > Control: affects -1 + src:mathgl > > > > mathgl fails to satisfy its cross Build-Depends, because its dependency > > on liboctave-dev is not satisfiable. liboctave-dev depends on toolchain > > packages such as gcc, g++ or gfortran. This is very unusual. Most > > commonly, C-libraries can depend on other C-libraries, but users are > > expected to install their desired toolchain themselves. These > > dependencies need toolchain dependency translation in order to work for > > cross building. Unfortunately, toolchain dependency translation is not > > yet implemented. Thus I think removing these dependencies is required. I > > looked into debian/changelog for why they were added and couldn't find a > > reason. Can we simply drop them? > > I think that the reason is historical. At least since version 2.1.64-3, > released 14 years ago, g++ and g77 | fort77 appear as dependencies of > octave2.1-headers. [1] The package octave2.1-headers is the predecessor of > liboctave-dev.
I think the reason for the dependency is because liboctave-dev also ships /usr/bin/mkoctfile, which is a wrapper for gcc|g++|gfortran to compile Octave extensions. Users install liboctave-dev and expect to be able to run mkoctfile to build native .mex or .oct files. One solution may be to introduce a new package, say 'octave-dev-tools', that would ship /usr/bin/mkoctfile and Depends: liboctave-dev. This might allow the possibility of cross-building with liboctave-dev. This would have a large impact on documentation, FAQs, and other accumulated knowledge that tells users to install 'liboctave-dev' to be able to compile and install packages. I want to also mention that liboctave-dev includes a small number of header files in /usr/include that are generated and include arch-specific contents: usr/include/octave-5.1.0/octave/mxarray.h usr/include/octave-5.1.0/octave/octave-config.h usr/include/octave-5.1.0/octave/version.h Does this require any specific handling with respect to multi-arch and cross-building? -- mike
signature.asc
Description: PGP signature