[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [PATCH v2] deb-pkg: generate correct build dependencies



On Tue, Feb 19, 2019 at 4:13 AM Ben Hutchings <ben@decadent.org.uk> wrote:
>
> On Tue, 2019-02-19 at 02:05 +0900, Masahiro Yamada wrote:
> [...]
> > "make allnoconfig; make bindeb-pkg"
> > failed on Ubuntu 16.04, but succeeded on Ubuntu 18.04
> >
> > I am puzzled...
> [...]
> > dpkg-buildpackage: host architecture i386
> >  dpkg-source --before-build linux
> > dpkg-checkbuilddeps: error: Unmet build dependencies: flex
> > dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
> > dpkg-buildpackage: warning: (Use -d flag to override.)
> > scripts/package/Makefile:78: recipe for target 'bindeb-pkg' failed
> > make[1]: *** [bindeb-pkg] Error 3
> > Makefile:1390: recipe for target 'bindeb-pkg' failed
> > make: *** [bindeb-pkg] Error 2
> >
> >
> > The docker file I used is below.
> >
> > If I change "FROM ubuntu:16.04" to "FROM ubuntu:18.04",
> > it goes well.
> [...]
>
> For a cross-build, some build-dependencies may need to belong to the
> host architecture (what the package will run on) while others do not.
> In general, they must do one of:
>
> (a) Belong to the host architecture
> (b) Belong to any architecture, and include "Multi-Arch: foreign" in
>     their own metadata
> (c) Belong to an architecture specified in the Build-Depends field
>
> We normally want (b) for tools like flex.  But flex is (I assume)
> missing the Multi-Arch field in Ubuntu 16.04, as it used to in Debian.
>
> The way we dealt with this in Debian before flex was fixed was (c): use
> "flex:native".  But for reasons I don't understand that *isn't*
> compatible with (b), so to be compatible with both old and new versions
> of flex you should build-depend on:
>
>    flex | flex:native

Yes, it worked with this fix.

Thanks.


-- 
Best Regards
Masahiro Yamada


Reply to: