pkg_setup() { if has_version '<=media-video/vlc-1.0.99999'; then eerror "Please unmerge vlc-1.0.x first before installing ${P}" eerror "If you don't do that, some plugins will get linked against" eerror "the old ${PN} version and will not work." die "Unmerge vlc 1.0.x first" fi ... } Checking against a potential compile time issue in pkg_setup is a very bad idea. It breaks binary packages support. Please move the eerror/die snippet somewhere else. Reproducible: Always
are you filling this on a static analysis basis or did you really encounter the error ? there is a hard block, this code snippet is just a fallback because portage used to have bugs preventing hardblocks to work for packages in the same slot...
I did really encounter the issue yes, binary package got broken because of that. It is a compile related check, done inside a function used by binary package systems (pkg_setup is called for binary packages too). Please *please* move it to src_prepare (if EAPI>=2) or src_unpack/src_compile. You are misusing pkg_setup.
(In reply to comment #1) > there is a hard block, this code snippet is just a fallback because portage > used to have bugs preventing hardblocks to work for packages in the same > slot... That's been fixed since portage-2.1.7.16 which was stabilized at the end of January 2010 (about 6 months ago).
(In reply to comment #3) > > That's been fixed since portage-2.1.7.16 which was stabilized at the end of > January 2010 (about 6 months ago). > What's the first version to introduce EAPI 3? If it's later then could just switch to EAPI 3 and remove the pkg_setup.
(In reply to comment #4) > (In reply to comment #3) > > > > That's been fixed since portage-2.1.7.16 which was stabilized at the end of > > January 2010 (about 6 months ago). > > What's the first version to introduce EAPI 3? If it's later then could just > switch to EAPI 3 and remove the pkg_setup. EAPI 3 is supported since portage-2.1.7.17, so that will work perfectly.
In cvs I've moved the vlc blockers to DEPEND and bumped to EAPI 3 so that die in pkg_setup is unnecessary.