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

Re: flex is no longer M-A:foreign



+++ Helmut Grohne [2016-02-07 18:25 +0100]:

cc: Manoj as I guess he's not on this list, and seems amenable to
discussion on the best way forward.
 
#761449 says " While we discuss the correct solution for this, I have removed
     the MA package tags. I am not quite happy with the proposed solution
     (swapping names of the packages seems icky, but I'll defer to the
     experts if there is no better way)"

So the maintainer hasn't entirely 'turned down your favourite option',
just voted for 'further discussion'.

Although things are a lot more broken now than they were with the
striclty-incorrect MA:foreign tag. With that most things cross-built,
and some didn't. Now nothing that needs flex does. (I think, correct
me if I am wrong).

> I am seeking consensus on what to do about flex. Until recently, it
> carried Multi-Arch: foreign. That was wrong (#761449) as it exposes
> libfl-dev and thus the architecture of libfl-dev. Since libfl-dev was
> only installed for the build architecture, this broke the build of e.g.
> pam.
> 
> Now Manoj fixed that bug by removing Multi-Arch: foreign despite the
> presence of a patch. The patch is arguably intrusive as it renames flex
> to flex-bin and libfl-dev to flex, but from an interface pov, nothing
> changes (except for picking the "right" architecture libraries). The new
> flex package provides libfl-dev and its new dependency on flex-bin
> causes flex binary to be present as expected.
> 
> The current state is that a build dependency on flex means to install
> the host architecture flex (with the host architecture flex libraries),
> but we cannot run host architecture code, so all builds running flex
> fail.
> 
> How do we want to handle this? I see two ways:
> 1) Apply my patch in the above bug report.
> 2) Change all dependencies on flex into "flex:native, libfl-dev".

Presumably in fact some packages want libfl-dev (:$host) and some want
flex (:native)? It's just that for a very long time there was only
'flex' which had both so deps/build-deps do not distinguish. 

So the most correct fix is to correct the dependencies to say which is
wanted everywhere? But as you observe, that's a big job, even the dim,
automated, version which just puts in both, as above.
 
> The second option requires a MBF involving 500 source packages and a
> one-digit number of binary package depends.
> 
> There also is an intermediate option where flex drops its dependency on
> libfl-dev. In that case, it can become Multi-Arch: foreign again. Since
> not every of those 500 source packages use libfl-dev, this would cause
> fewer bugs. It still incurs the MBF.

Right. This was the original bug where the two packages were split:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=611230 explaining
the multiarch rationale.

It does seem to me that the issue here is that things which want
flex-dev:$host don't explicitly say so, and instead we have flex
depending on flex-dev itself, which was an interim thing that we
should drop and correct the deps/build-deps. Does flex in fact always
need flex-dev (for build-arch?) I have forgotten how flex works but
veguely recall from the vintage of #611230 that it is somehow special.

> Given that my favourite option was turned down by the maintainer, the
> next available fix unfortunately looks like a MBF to me. I would very
> much like to avoid this route. So unless someone has a better idea, I'll
> go ahead and announce the MBF to d-devel.

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/

Attachment: signature.asc
Description: Digital signature


Reply to: