Source: efl Version: 1.23.3-6 Tags: patch User: debian-cr...@lists.debian.org Usertags: ftcbfs
efl fails to cross build from source. The error from meson is quite instructive: | src/bin/eolian/meson.build:25:2: ERROR: Program(s) ['eolian_gen'] not found or not executable For native builds, efl builds eolian_gen and installs it. For cross builds, it expects the builder to provide a pre-built eolian_gen for the build architecture and compiles an eolian_gen for the host architecture. So we should simply build depend on the package containing eolian_gen, no? Not that simple unfortunately. The package would be libefl-all-dev and we'd have to install it for the build architecture here. In other words: libefl-all-dev:native. Unfortunately, it depends on lots of packages that we also build depend on for the host architecture. Sufficiently many of its dependencies are not Multi-Arch: same, so there is no solution to the requested dependencies. Therefore, we must provide a "smaller" way to access eolian_gen. I'm proposing a libefl-all-dev-bin package. We simply move eolian_gen to that new package and have libefl-all-dev depend on it. For consumers, nothing changes. Two things do change: * libefl-all-dev-bin is being marked Multi-Arch: foreign, so eolian_gen becomes usable for cross compilation. * efl can build depend on libefl-all-dev-bin <cross> to make the tool available. Please consider applying the attached patch. Yes, that means going through NEW. Why not move all /usr/bin/* to libefl-all-dev-bin? I don't have the expertise to tell which are movable. The build system clearly tells that a native eolian_gen is usable for cross compilation, but for other tools I simply don't know. Leaving them where they are is a conservative choice. If we encounter more tools that need to be moved for other reasons, we can do so later without adding more packages. For eolian_gen, there is a specific need to perform such a move. Helmut
diff --minimal -Nru efl-1.23.3/debian/changelog efl-1.23.3/debian/changelog --- efl-1.23.3/debian/changelog 2020-01-30 07:19:24.000000000 +0100 +++ efl-1.23.3/debian/changelog 2020-01-31 19:35:39.000000000 +0100 @@ -1,3 +1,11 @@ +efl (1.23.3-6.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Improve cross building: Move eolian_gen to a Multi-Arch: foreign package + and build depend on it. (Closes: #-1) + + -- Helmut Grohne <hel...@subdivi.de> Fri, 31 Jan 2020 19:35:39 +0100 + efl (1.23.3-6) unstable; urgency=medium * Upload to unstable (Closes: #949351) diff --minimal -Nru efl-1.23.3/debian/control efl-1.23.3/debian/control --- efl-1.23.3/debian/control 2020-01-30 06:40:35.000000000 +0100 +++ efl-1.23.3/debian/control 2020-01-31 19:35:39.000000000 +0100 @@ -13,6 +13,7 @@ libbullet-dev, libcurl4-gnutls-dev, libdbus-1-dev, + libefl-all-dev-bin <cross>, libfontconfig1-dev, libfreetype6-dev, libfribidi-dev, @@ -594,6 +595,7 @@ libedje1 (= ${binary:Version}), libeet1 (= ${binary:Version}), libeeze1 (= ${binary:Version}) [linux-any], + libefl-all-dev-bin (= ${binary:Version}), libefreet1a (= ${binary:Version}), libeina1a (= ${binary:Version}), libeio1 (= ${binary:Version}), @@ -702,6 +704,24 @@ . This package provides the development files for all of EFL. +Package: libefl-all-dev-bin +Section: libdevel +Architecture: any +Multi-Arch: foreign +Depends: ${misc:Depends}, ${shlibs:Depends} +Breaks: libefl-all-dev (<< 1.23.3-6.1~) +Replaces: libefl-all-dev (<< 1.23.3-6.1~) +Description: Enlightenment Foundation Libraries development tools + The Enlightenment Foundation Libraries (EFL) is a stack of libraries + providing a wide degree of functionality. Originally written to + support development of the Enlightenment window manager, the + libraries have increasingly been used in embedded systems. + . + This is part of the Enlightenment Foundation Libraries (EFL). + . + This package is an implementation detail of libefl-all-dev. Please use + libefl-all-dev instead. + Package: libefreet1a Architecture: any Multi-Arch: same diff --minimal -Nru efl-1.23.3/debian/libefl-all-dev-bin.install efl-1.23.3/debian/libefl-all-dev-bin.install --- efl-1.23.3/debian/libefl-all-dev-bin.install 1970-01-01 01:00:00.000000000 +0100 +++ efl-1.23.3/debian/libefl-all-dev-bin.install 2020-01-31 19:35:39.000000000 +0100 @@ -0,0 +1,3 @@ +# +# libeolian-dev.install +usr/bin/eolian_gen diff --minimal -Nru efl-1.23.3/debian/libefl-all-dev.install efl-1.23.3/debian/libefl-all-dev.install --- efl-1.23.3/debian/libefl-all-dev.install 2020-01-30 06:33:22.000000000 +0100 +++ efl-1.23.3/debian/libefl-all-dev.install 2020-01-31 19:35:39.000000000 +0100 @@ -145,7 +145,6 @@ usr/include/eolian* usr/lib/*/libeolian.so usr/lib/*/pkgconfig/eolian*.pc -usr/bin/eolian_gen usr/lib/*/cmake/Eolian/*.cmake #