I'm not shure if it could be implemented in an eclass or it's an emerge bug.
It seems to me that just building binaries (emerge --buildpkgonly) should skip downgrade protection, as no potential damage exists.
Steps to Reproduce:
1.emerge -B =x11-libs/qt-core-4.6.2-r1
* qt-everywhere-opensource-src-4.6.2.tar.gz RMD160 SHA1 SHA256 size ;-) ... [ ok ]
* Package: x11-libs/qt-core-4.6.2-r1
* Repository: gentoo
* Maintainer: email@example.com
* USE: elibc_glibc exceptions glib iconv kernel_linux pch qt3support ssl userland_GNU x86
* FEATURES: sandbox
* Sanity check to keep you from breaking your system:
* Downgrading Qt is completely unsupported and will break your system!
* ERROR: x11-libs/qt-core-4.6.2-r1 failed (setup phase):
* aborting to save your system
* Call stack:
* ebuild.sh, line 56: Called pkg_setup
* qt-core-4.6.2-r1.ebuild, line 69: Called qt4-build_pkg_setup
* qt4-build.eclass, line 80: Called die
* The specific snippet of code:
* die "aborting to save your system"
* If you need support, post the output of 'emerge --info =x11-libs/qt-core-4.6.2-r1',
* the complete build log and the output of 'emerge -pqv =x11-libs/qt-core-4.6.2-r1'.
* The complete build log is located at '/var/tmp/portage/x11-libs/qt-core-4.6.2-r1/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/x11-libs/qt-core-4.6.2-r1/temp/die.env'.
* S: '/var/tmp/portage/x11-libs/qt-core-4.6.2-r1/work/qt-everywhere-opensource-src-4.6.2'
The eclass contains:
# Ben de Groot <firstname.lastname@example.org>,
# Markos Chandras <email@example.com>,
# Caleb Tennis <firstname.lastname@example.org>
# Alex Alexander <email@example.com>
Wouldn't that be nicer with @AUTHOR:, with @MAINTAINER: <firstname.lastname@example.org>? It looks like various eclasses use different approaches - it's just that I would think assigning to qt@ works better than assigning to four separate developers.
(In reply to comment #1)
> The eclass contains:
> # @MAINTAINER:
> # Ben de Groot <email@example.com>,
> # Markos Chandras <firstname.lastname@example.org>,
> # Caleb Tennis <email@example.com>
> # Alex Alexander <firstname.lastname@example.org>
> Wouldn't that be nicer with @AUTHOR:, with @MAINTAINER: <email@example.com>? It
> looks like various eclasses use different approaches - it's just that I would
> think assigning to qt@ works better than assigning to four separate developers.
The sanity check prevents to get a crippled system. The only way to downgrade is to remove Qt altogether and merge again. This is true for source and binary downgrades.
So conclusion for binaries is: Remove all x11-libs/qt-* packages and merge those what binpkg wants to merge.