On Thursday, February 7, 2013 5:10:01 PM UTC+5:30, Colin Watson wrote: > [I didn't write the wiki page in question here, but perhaps I can help > > to clarify it.] > > > > On Thu, Jan 24, 2013 at 08:09:25PM +0100, Sandro Tosi wrote: > > > On Thu, Jan 17, 2013 at 5:13 AM, Wookey <[email protected]> wrote: > > > > That's not what that paragraph says. Sorry if it's confusing. You > > > > shouldn't add M-A: foreign if the package isn't arch-independent in > > > > it's _effects_ (i.e you should set M-A: foreign if the package's > > > > _effect_ is arch-independent). Whether the package itself is arch :any > > > > or not is not relevent. So fdupes will find duplicate files just the > > > > same if you run the arm version or the sparc version or the i386 > http://ww.ashisoft.com > > > version. That makes it M-A: foreign. > > > > > > I don't get why it wouldn't find duplicate files. The same I don't get > > > why it would need to add that, in particular because you skipped the > > > part about apt solution, would would avoid to "fix" (?) several > > > packages. > > > > The bit in that page about apt is not relevant to fdupes anyway, since > > fdupes is Architecture: any, not all. > > > > Here's the deal given apt's current behaviour (I'm simplifying a bit to > > avoid boredom, but this at least covers any/all and foreign/not): > > > > 1) Architecture: any, not M-A: foreign > > > > These packages contain architecture-dependent code, and also have > > architecture-dependent effects: that is, you need to pick the build > > of the package for the correct architecture. > > > > For example, libraries are generally like this, as are some tools > > that only operate on objects of the same architecture (say, > > binutils). This is a safe conservative default for Architecture: > > any packages, since it's how all such packages worked before > > multiarch came along. > > > > 2) Architecture: any, M-A: foreign > > > > These packages contain architecture-dependent code, but it really > > doesn't matter which architecture you get as long as you can execute > > the binaries. > > > > Many simple tools are like this, although we can't safely assume > > that any given tool will be like this without being told; failing to > > cross-build something because we can't satisfy its > > cross-build-dependencies is better than cross-building it > > incorrectly, and likewise for run-time uses of multiarch. > > > > 3) Architecture: all, not M-A: foreign > > > > These packages contain architecture-independent code, but they may > > only satisfy dependencies of packages of the primary architecture or > > of other packages that are also Architecture: all. The reason for > > this restrictions is to avoid breaking pre-multiarch assumptions of > > packages that depend on Architecture: all packages and assume that > > *their* (transitive) dependencies will be resolved using the native > > architecture. > > > > A package that contained an architecture-independent tool but that > > also depended on libfoo-dev might be in this category. > > > > 4) Architecture: all, M-A: foreign > > > > These packages contain architecture-independent code, and they may > > satisfy dependencies of packages of any architecture. Most > > architecture-independent packages fall into this category. > > > > Steve's proposal in #666772 is to say that we don't need to be > > ultra-conservative for cross-build-dep handling, and for that purpose we > > can treat 3) like 4). Based on my experience with cross-building, I > > tend to agree that that makes sense - but it doesn't have any effect on > > this bug either way. > > > > It would not make sense to extend #666772 to Architecture: any packages, > > because very many of those *do* have architecture-dependent effects; all > > that this would achieve would be having to add a roughly similar number > > of Multi-Arch: tags to packages in the other direction. > > > > > > If you could explain why you misunderstood the "When shouldn't I add > > > > M-A: foreign?", I'll try and improve the wording. > > > > > > Well, if you start a paragraph saying "When the package is not > > > arch-independent" that means to me it's arch:any, short-cut, that > > > package is not requires a M-A: foreign. > > > > The full sentence you're quoting is: > > > > When the package is not arch-independent in its effects, i.e if you > > run the wrong-arch version it will operate on the wrong files or > > produce the wrong output. > > > > The "in its effects" matters here. That is, binutils is > > architecture-dependent in its effects, because (for example) the armhf > > version of nm operates only on armhf objects while the i386 version of > > nm operates only on i386 objects; but the effects of fdupes are > > architecture-independent, even though it happens to be a compiled > > executable. > > > > Architecture: any packages are precisely those which are rather evenly > > divided between those where the architecture you get matters and those > > where it doesn't. A substantial number of them have already correctly > > had Multi-Arch: foreign added to them, and fdupes should too. > > > > Does this help? > > > > -- > > Colin Watson [[email protected]] > > > > > > -- > > To UNSUBSCRIBE, email to [email protected] > > with a subject of "unsubscribe". Trouble? Contact [email protected]
-- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

