GNOME Bugzilla – Bug 778780
1.47.90 tests are failing
Last modified: 2017-02-21 04:44:44 UTC
gjs 1.47.90-0ubuntu2 Ubuntu 17.04 Alpha "zesty" Ubuntu runs gjs's test suite using its autopkgtest infrastructure. Although the 1.46 tests passed, the tests are failing now with 1.47.90. This is holding back GNOME Shell 3.23.90 from being promoted out of the zesty-proposed repository to the regular zesty repository. Logs are at: http://autopkgtest.ubuntu.com/packages/g/gjs/zesty/amd64
To fix the testFundamental and testGIMarshalling failures, you need gobject-introspection 1.51.2. If you're not planning to ship that in Ubuntu, you can safely disable those tests with a distro patch, without any loss of functionality other than test coverage. To fix the testLocale test, you should make sure mozjs38 is configured with --with-intl-api. You could still disable the failing test, but that would mean Ubuntu would ship a GJS without full features. I should probably encode both of those requirements in the configure script.
Thanks, we are definitely planning to ship gobject-introspection 1.52 (1.51) in Ubuntu 17.04 so we'll give that a try first. I'll let you know if the tests fail after that. You can close this bug now if you like unless you want to use it for updating configure.ac
Yes, I'll update configure.ac. Thanks!
Created attachment 346041 [details] [review] build: Check for Intl API in mozjs Make sure that SpiderMonkey was configured with the flag --with-intl-api. Otherwise, GJS will not be full-featured.
Created attachment 346042 [details] [review] build: Warn about old gobject-introspection We require gobject-introspection 1.41.4 to build. However, with versions less that 1.51.2, not all the tests will pass due to some functions being missing from the Regress and GIMarshalling libraries. Don't fail the build if this is the case, but emit a warning right before the configure summary, where it is likely to get noticed.
It looks like these tests are still failing http://autopkgtest.ubuntu.com/packages/gjs/zesty/amd64 http://autopkgtest.ubuntu.com/packages/gjs
Oh, I posted before I saw your comment. Yes, Ubuntu's mozjs38 was compiled --without-intl-api. I apologize; I hadn't yet reviewed the suggested mozjs38 compiler options that you posted to the distributor-list.
I am having trouble using --with-intl-api. I wonder if Mozilla's code is wrong. configure:15042: checking for icu-i18n >= 50.1 configure:15049: checking MOZ_ICU_CFLAGS configure:15054: checking MOZ_ICU_LIBS configure: error: cannot determine icu version number from uvernum.h header file That code appears to come from https://hg.mozilla.org/mozilla-central/file/6cd60e5f3d52/build/autoconf/icu.m4 I am building now (not pushed to Ubuntu zesty yet) using --with-system-icu after adding libicu-dev to Build-Depends. I note that Fedora is also building --without-intl-api so maybe they had trouble with it too. http://pkgs.fedoraproject.org/cgit/rpms/mozjs38.git/tree/mozjs38.spec#n77
Yes, this seems suspect: https://dxr.mozilla.org/mozilla-esr38/source/build/autoconf/icu.m4#76 It looks like they are checking for the version number inside the bundled ICU sources even if you have configured --with-system-icu. However, I don't understand why this check would fail, since the bundled ICU sources are there regardless. It's built successfully so far in both JHBuild and gnome-continuous using --with-system-icu --with-intl-api, so that is indeed what I'd recommend.
Ok, I bypassed the broken version check and it builds. I'll let you know if the tests pass.
Strange that you needed an extra patch, though. Maybe try printing out the full path of the uvernum.h file that it's trying to check, and compare that to what's on your disk?
I rebuilt gjs 1.47.90 against the mozjs38 that was built --with-intl-api and the autopkgtest tests pass now, except on s390x. (We had some trouble last August too so the s390x failures are currently ignored for gjs.) http://autopkgtest.ubuntu.com/packages/g/gjs http://autopkgtest.ubuntu.com/packages/g/gjs/zesty/amd64 http://autopkgtest.ubuntu.com/packages/g/gjs/zesty/s390x Here's another line from my earlier failed build log. sed: character class syntax is [[:space:]], not [:space:] configure: error: cannot determine icu version number from uvernum.h header file
Ah, I saw some people complaining about having a too-recent version of sed when we were debugging the mozjs38 build on gnome-continuous. This must have been what they were running into. Perhaps that character class stuff was changed in a recent version? It will be hard for me to debug the s390x failure but would you mind opening a bug for it?
Review of attachment 346041 [details] [review]: Looks good.
Review of attachment 346042 [details] [review]: OK
Attachment 346041 [details] pushed as 04e9f3c - build: Check for Intl API in mozjs Attachment 346042 [details] pushed as 1b4b80e - build: Warn about old gobject-introspection