Summary: | sys-apps/portage: use dependencies on USE_EXPAND-values broken for binary packages | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Eugeny Shkrigunov <eshkrig> |
Component: | [OLD] Unspecified | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dev-portage, fonts, freedesktop-bugs, itumaykin+gentoo, jens, multilib+disabled, yngwin |
Priority: | Normal | Keywords: | InVCS |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 484436 |
Description
Eugeny Shkrigunov
2013-09-25 05:46:28 UTC
>=expat-2.1.0-r3 and >=freetype-2.4.11-r2 do have those useflags, so likely INVALID.
(In reply to Rafał Mużyło from comment #1) > >=expat-2.1.0-r3 and >=freetype-2.4.11-r2 do have those useflags, so likely INVALID. But the current stable (amd64) version is broken. For media-libs/fontconfig-2.10.92 RDEPEND should be || ( ( >=dev-libs/expat-1.95.3 <dev-libs/expat-2.1.0-r3 >=media-libs/freetype-2.2.1 <media-libs/freetype-X.Y.Z ) ( >=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] >=media-libs/freetype-X.Y.Z[${MULTILIB_USEDEP}] ) ) or something like, isnt it This seems to me like trying to install packages from testing on a stable system. Multilib flags are masked on stable currently. I don't know how package.stable.use.mask affects binary packages, though. Maybe dev-portage@ could help. (In reply to Michał Górny from comment #3) > This seems to me like trying to install packages from testing on a stable > system. Multilib flags are masked on stable currently. I don't know how > package.stable.use.mask affects binary packages, though. Maybe dev-portage@ > could help. No way - all these packages are stable: dev-libs/expat-2.1.0-r2 media-libs/fontconfig-2.10.92 media-libs/freetype-2.4.11 Please do anything - with MULTILIB_USEDEP more and more packages concerned. MULTILIB_USEDEP breaks binary packages at all. the problem here is not multilib stuff but rather the abi_x86_64 useflag which is enabled and forced for fontconfig (as a consequence of multilib conversion) and thus requires the same flag enabled on freetype and expat, which should thus have been stabilized _before_ fontconfig I cant believe arch teams stabilized this and that repoman doesnt catch it (In reply to Alexis Ballier from comment #5) > the problem here is not multilib stuff but rather the abi_x86_64 useflag > which is enabled and forced for fontconfig (as a consequence of multilib > conversion) and thus requires the same flag enabled on freetype and expat, > which should thus have been stabilized _before_ fontconfig > > I cant believe arch teams stabilized this and that repoman doesnt catch it but why dependecy (for expat and freetype) is [abi_x86_64(-)] and not [abi_x86_64(+)] on arch amd64? > but why dependecy (for expat and freetype) is [abi_x86_64(-)] and not
> [abi_x86_64(+)] on arch amd64?
In fact, it did not help.
I tried to change dependency to [abi_x86_64(+)] - binary packages does not install.
There are many packages that have defined default USE dependencies: category/package[use_flasg(-)] and category/package[use_flasg(+)]. All of them (binary) installs as should. Only [abi_x86_64(-)], [abi_x86_64(+)], etc. have trouble.
Today media-libs/audiofile-0.3.6-r1 require >=media-libs/flac-1.2.1[abi_x86_64(-)]. Binary packages (media-libs/audiofile-0.3.6-r1 and media-libs/flac-1.2.1-r3) had been fine build on build host but does not install on destination host. Seems it is a bug in portage with resolution dependencies like [abi_x86_64(-)]. Portage's binary packages feature is totally broken. Fix it please. Do you have anything in /etc/portage/profiles on either system? Please post the entries for flac and audiofile in the binhost's Packages file (to be found in $PKGDIR). Please post the output of: emerge --ignore-default-opts -pvtK =audiofile-0.3.6-r1 =media-libs/flac-1.2.1-r3 from both systems. (In reply to Sebastian Luther (few) from comment #9) > Do you have anything in /etc/portage/profiles on either system? > > Please post the entries for flac and audiofile in the binhost's Packages > file (to be found in $PKGDIR). > > Please post the output of: > emerge --ignore-default-opts -pvtK =audiofile-0.3.6-r1 > =media-libs/flac-1.2.1-r3 > from both systems. No, I have not /etc/portage/profiles. Packages' entries: BUILD_TIME: 1385979789 CPV: media-libs/audiofile-0.3.6-r1 DEFINED_PHASES: compile configure install prepare test DEPEND: >=media-libs/flac-1.2.1[abi_x86_64(-)] virtual/pkgconfig || ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.14:1.14 ) >=sys-devel/autoconf-2.68 sys-devel/libtool >=sys-apps/coreutils-8.5 app-arch/xz-utils DESC: An elegant API for accessing audio files EAPI: 5 IUSE: flac static-libs test abi_x86_32 abi_x86_64 abi_x86_x32 abi_mips_n32 abi_mips_n64 abi_mips_o32 KEYWORDS: ~alpha amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris LICENSE: GPL-2 LGPL-2.1 MD5: 5dd14bc1a66c2ced6d6adb924a4f6602 MTIME: 1385979789 RDEPEND: >=media-libs/flac-1.2.1[abi_x86_64(-)] SHA1: a80963316d3af80a9b82da0729803bf65bd220df SIZE: 185688 SLOT: 0/1 USE: abi_x86_64 flac BUILD_TIME: 1385964539 CPV: media-libs/flac-1.2.1-r3 DEFINED_PHASES: configure install prepare test DEPEND: >=media-libs/libogg-1.1.3 sys-devel/gettext virtual/pkgconfig || ( >=sys-devel/automake-1.13:1.13 >=sys-devel/automake-1.14:1.14 ) >=sys-devel/autoconf-2.68 sys-devel/libtool DESC: free lossless audio encoder and decoder EAPI: 2 IUSE: 3dnow altivec +cxx debug ogg sse static-libs KEYWORDS: alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd LICENSE: BSD FDL-1.2 GPL-2 LGPL-2.1 MD5: 350f8a373a81698fe1a3247258a4b0ea MTIME: 1385964540 RDEPEND: >=media-libs/libogg-1.1.3 SHA1: 240fbb842cebd471230f503e7c40ef9661d3043c SIZE: 902230 USE: cxx ogg sse Output of emerge --ignore-default-opts -pvtK =media-libs/audiofile-0.3.6-r1 =media-libs/flac-1.2.1-r3 ################################################################################################## # build host: Calculating dependencies... done! [binary R ] media-libs/flac-1.2.1-r3 USE="cxx ogg sse -3dnow (-altivec) -debug -static-libs" 0 kB [binary R ] media-libs/audiofile-0.3.6-r1:0/1 USE="flac -static-libs {-test}" ABI_X86="(64) (-32) (-x32)" 0 kB Total: 2 packages (2 reinstalls, 2 binaries), Size of downloads: 0 kB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: media-libs/flac:0 (media-libs/flac-1.2.1-r3::gentoo, installed) pulled in by >=media-libs/flac-1.2.1[abi_x86_64(-)] required by (media-libs/audiofile-0.3.6-r1::gentoo, binary scheduled for merge) (media-libs/flac-1.2.1-r3::gentoo, binary scheduled for merge) pulled in by (no parents that aren't satisfied by other packages in this slot) !!! Enabling --newuse and --update might solve this conflict. !!! If not, it might help emerge to give a more specific suggestion. ################################################################################################## # destination host: Calculating dependencies... done! emerge: there are no ebuilds to satisfy ">=media-libs/flac-1.2.1[abi_x86_64(-)]". (dependency required by "media-libs/audiofile-0.3.6-r1" [binary]) (dependency required by "=media-libs/audiofile-0.3.6-r1" [argument]) I think there are at least three problems here: 1) abi_x86_* is not in IUSE. This means that at least for EAPI < 5 use dependencies on these packages don't work. 2) For some reason they still work for installed packages (which seems wrong), but not for binary packages (that's why this bug exists). 3) If the package is EAPI-5 (like media-libs/flac-1.2.1-r5) then it works for both binary and installed packages. But I wonder if this is wrong too, because non of the rules for profile iuse injection apply to ABI_X86 as I read it. (In reply to Sebastian Luther (few) from comment #11) > I think there are at least three problems here: > I missed that -r5 uses the multilib-build eclass which adds these flag to IUSE. > 1) abi_x86_* is not in IUSE. This means that at least for EAPI < 5 use > dependencies on these packages don't work. > > 2) For some reason they still work for installed packages (which seems > wrong), but not for binary packages (that's why this bug exists). I now think these two things are fine as is (except for the binary package behavior). For use dependencies on packages using the multilib-build eclass everything should work as expected. For ebuilds with EAPI < 5 that don't have those flags in IUSE, use dep defaults may not work as expected. > > 3) If the package is EAPI-5 (like media-libs/flac-1.2.1-r5) then it works > for both binary and installed packages. But I wonder if this is wrong too, > because non of the rules for profile iuse injection apply to ABI_X86 as I > read it. Ignore this one as the package has these flags in IUSE. The binary package behavior is fixed in git. You'll need to re-create the package index on both systems: rm $PKGDIR/Packages emaint --fix binhost http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=c08e18723f34cb33a025b7cfa999f03cced9a67b (In reply to Sebastian Luther (few) from comment #13) > The binary package behavior is fixed in git. You'll need to re-create the > package index on both systems: > > rm $PKGDIR/Packages > emaint --fix binhost > > http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit; > h=c08e18723f34cb33a025b7cfa999f03cced9a67b Now it works as should. Thank you very much! Please leave it open until the fix is in a release. Released in sys-apps/portage-2.2.8. *** Bug 497526 has been marked as a duplicate of this bug. *** |