MongoDB gets marked as part of preserved-rebuild upon update of v8 (correctly) but when attempting to rebuild mongodb the build fails with notations indicating that v8 has changed its interface. The last version of v8 was working successfully for me. Of course, my last version of v8 is =dev-lang/v8-3.18.5.9 (which is currently stable). To reproduce: 1. Install =dev-lang/v8-3.19.18.9 2. emerge @preserved-rebuild (specifically =dev-db/mongodb-2.4.5) 3. Build Fails with the following short error message: /usr/include/v8.h:447:22: error: 'v8::Local<T>::Local(S*) [with S = v8::Function; T = v8::Function]' is private src/mongo/scripting/v8_utils.cpp:136:87: error: within this context In file included from src/mongo/scripting/v8_utils.h:24:0, from src/mongo/scripting/v8_utils.cpp:18: /usr/include/v8.h:770:3: error: 'T* v8::Persistent<T>::operator->() const [with T = v8::Context]' is private src/mongo/scripting/v8_utils.cpp:150:61: error: within this context In file included from src/mongo/scripting/v8_utils.h:24:0, from src/mongo/scripting/v8_utils.cpp:18: /usr/include/v8.h: In function 'mongo::JSThreadConfig* mongo::thisConfig(mongo::V8Scope*, const v8::Arguments&)': /usr/include/v8.h:447:22: error: 'v8::Local<T>::Local(S*) [with S = v8::External; T = v8::External]' is private src/mongo/scripting/v8_utils.cpp:197:83: error: within this context In file included from src/mongo/scripting/v8_db.h:23:0, from src/mongo/scripting/v8_db.cpp:18: I'll also attach all of the relevant information from the build process itself.
Created attachment 353582 [details] emerge --info '=dev-db/mongodb-2.4.5'
Created attachment 353584 [details] emerge -pqv '=dev-db/mongodb-2.4.5'
Created attachment 353586 [details] /var/tmp/portage/dev-db/mongodb-2.4.5/temp/build.log
Created attachment 353588 [details] /var/tmp/portage/dev-db/mongodb-2.4.5/temp/environment
src/mongo/scripting/engine_v8.h:20:0: /usr/include/v8.h:750:3: error: 'v8::Persistent<T>::Persistent(const v8::Persistent<T>&) [with T = v8::Context; v8::Persistent<T> = v8::Persistent<v8::Context>]' is private
Yep, saw it too, fixed in tree already. + 18 Jul 2013; Ultrabug <ultrabug@gentoo.org> mongodb-2.4.5.ebuild: + block broken v8 versions +
Not much of a fix: (dev-lang/v8-3.19.18.9::gentoo, installed) pulled in by >=dev-lang/v8-3.19.17:= required by (www-client/chromium-29.0.1547.22::gentoo, installed) =dev-lang/v8-3.19* required by (www-client/chromium-29.0.1547.22::gentoo, installed) (and 1 more with the same problems) (dev-lang/v8-3.18.5.9::gentoo, ebuild scheduled for merge) pulled in by <dev-lang/v8-3.19 required by (dev-db/mongodb-2.4.5::gentoo, installed)
You're right, this is upstream's resolution we're expecting; fixing status. Also, please check related bug #471582 about this.
(In reply to Ultrabug from comment #8) > You're right, this is upstream's resolution we're expecting; fixing status. > > Also, please check related bug #471582 about this. The Gentoo Chromium team is now phasing out dev-lang/v8 shared package. I'm working with v8 upstream to get the library in better shape API and ABI-wise, but the ETA is very long ("years"). Please switch the package to use bundled v8.
+*mongodb-2.4.6-r2 (21 Oct 2013) +*mongodb-2.2.6-r1 (21 Oct 2013) + + 21 Oct 2013; Ultrabug <ultrabug@gentoo.org> +mongodb-2.2.6-r1.ebuild, + +mongodb-2.4.6-r2.ebuild: + switch to bundled v8 as per chromium team request wrt #477300 #471582, drop + 2.2.x v8 support as it was not bundled and experimental + Ok Chromium team, it's done. I'll drop old ebuilds on the next version bump of mongodb.