+++ 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