Summary: | dev-util/pkgcheck: warn of always true USE dependencies | ||
---|---|---|---|
Product: | Gentoo Hosted Projects | Reporter: | Diego Elio Pettenò (RETIRED) <flameeyes> |
Component: | PkgCore | Assignee: | PkgCore project <pkgcore> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | mgorny, qa, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Diego Elio Pettenò (RETIRED)
2011-11-14 11:37:19 UTC
(In reply to comment #0) >[...] > Since no version of gmp had nocxx USE flag, it was always considered disabled, > so dev-libs/gmp[-cxx] was satisfying the second part of the conditional quite > well. This is not true. If a package doesn't have the flag it's considered as not matching the dependency. > [...] Then please explain why ppl with such a dependency had no issue with me having dev-libs/gmp[-cxx] installed... Yes I already doublecheckd that the ebuild was updated. No I had it in no other overlay. It might just be a bug in Portage I guess, but still.. Can you provide some output from emerge where it does something that you think is wrong? If you can, post the output and attach the output with --debug added. I can't because I fixed the tree and I have no intention to break my system again, as I already spent enough time on this today to be honest. But simply put: Mike changed from nocxx to cxx, and I have -cxx in my master USE variable; emerge -avuDN @world @system made me rebuild gmp[-cxx] without any issue, but I had ppl (with the dependency reported) installed in the system, which caused preserve-libs to kick in (luckily). (In reply to comment #4) > [...] > But simply put: Mike changed from nocxx to cxx, and I have -cxx in my master > USE variable; emerge -avuDN @world @system made me rebuild gmp[-cxx] without > any issue, but I had ppl (with the dependency reported) installed in the > system, which caused preserve-libs to kick in (luckily). That's bug 367555. @Zac: What about enabling --complete-graph for use changes too? (like --complete-graph-if-new-ver) AFAICT dropping the || () is enough for Portage to start reporting this as a problem as expected. `emerge` would treat dev-libs/gmp[-nocxx] as satisfied if a version with IUSE="nocxx" and USE="-nocxx" was still installed in VDB. (In reply to comment #6) > AFAICT dropping the || () is enough for Portage to start reporting this as a > problem as expected. This works only if there is an ebuild which has both use flags. And in this case you should write the dep as dev-libs/gmp[cxx,-nocxx]. And this won't help with the issue I pointed out, as portage isn't going to even look at the installed package's dependencies. I guess I see it as fixed by that change because it forces portage to reconsider PPL's dependencies (not gmp's reverse dependencies!). Since the installed gmp[-nocxx] satisfies the || (), as Arfrever points out, it wouldn't require the [cxx] during direct dependency resolution, but once I changed ppl (and the rest) to require [cxx] explicitly, then it won't accept [-nocxx] any longer. (In reply to comment #9) > I guess I see it as fixed by that change because it forces portage to > reconsider PPL's dependencies (not gmp's reverse dependencies!). > [...] I don't see why your change would do that. Either ppl gets pulled into the dependency tree or not. In the former case emerge would use the updated deps, in the latter case it wouldn't look at ppl's deps at all (neither the old nor the new). What your change does, is to force people to reinstall gmp with the new IUSE/USE, while vapier's version would have allowed people to continue with the installed version (without any unsatisfied dependency). ppl is brought in by nacl-toolchain-newlib (and another package), that is already installed. With an -uD it'll be requiring a rebuild of gmp[cxx] because of the new dependencies (and you said that yourself). With Mike's version _if you use -N_ you will get a half-hosed system that would require you to rebuild ppl itself instead, due to @preserved-rebuild and/or revdep-rebuild, which takes even more time. (In reply to comment #11) > ppl is brought in by nacl-toolchain-newlib (and another package), that is > already installed. With an -uD it'll be requiring a rebuild of gmp[cxx] because > of the new dependencies (and you said that yourself). Right, but with the old dep the gmp reinstall could be avoided. > > With Mike's version _if you use -N_ you will get a half-hosed system that would > require you to rebuild ppl itself instead, due to @preserved-rebuild and/or > revdep-rebuild, which takes even more time. An emerge -uDN world will give a working system. Only if you do something like emerge gmp, which doesn't pull ppl into the dependency tree will break your system. This is what I pointed out in comment 5. (In reply to comment #12) > An emerge -uDN world will give a working system. Only if you do something like > emerge gmp, which doesn't pull ppl into the dependency tree will break your > system. This is what I pointed out in comment 5. And this is independent of which version of the dep in ppl you use. `emerge -avuDN @world @system` did _not_ give a working system, with Mike's dependencies, it did with mine. (In reply to comment #14) > `emerge -avuDN @world @system` did _not_ give a working system, with Mike's > dependencies, it did with mine. That sounds impossible, but there is no way to do anything if you don't have logs. repoman support has been removed per bug 835013. Please file a new bug (or, I suppose, reopen this one) if you feel this check is still applicable to pkgcheck and doesn't already exist. |