Closed Bug 1167201 Opened 4 years ago Closed 4 years ago

Automated tests silently fail when gconf2-devel is not present on a linux system.

Categories

(Firefox Build System :: General, defect)

defect
Not set

Tracking

(firefox41 fixed)

RESOLVED FIXED
mozilla41
Tracking Status
firefox41 --- fixed

People

(Reporter: benjamin, Assigned: benjamin)

References

Details

Attachments

(1 file)

If a linux system doesn't have the gconf2 -devel package, the build will silently disable gconf2.

This has the side effect of breaking a shit-ton of tests, because our typical check for "are we running on Linux" is:

  let isLinux = ("@mozilla.org/gnome-gconf-service;1" in Cc);

The patch I will attach here will make the lack of gconf2-devel a fatal error by default: builders can still --disable-gconf, and in that case configure will issue a warning about failing tests.
Yeah, we definitely shouldn't disable functionality silently. As to the isLinux thing, we should fix bug 1150818 and let tests use mozinfo instead of horrible checks like that. :-/
Assignee: nobody → benjamin
Status: NEW → ASSIGNED
Attachment #8608818 - Flags: review?(mh+mozilla)
(In reply to Benjamin Smedberg  [:bsmedberg] from comment #0)
>   let isLinux = ("@mozilla.org/gnome-gconf-service;1" in Cc);

That's interesting, because that's not what the typical check looked like a while ago iirc. But why not fix that instead? 
@mozilla.org/gio-service;1 would be a better one, as it's always there.
Specifically, even if you do build with --enable-gconf, you can still not have the gconf service at run time.
Comment on attachment 8608818 [details] [diff] [review]
1167201-gconf-configure

Review of attachment 8608818 [details] [diff] [review]:
-----------------------------------------------------------------

::: configure.in
@@ +4780,4 @@
>              then
>                  AC_MSG_ERROR([* * * Could not find gconf-2.0 ])
> +            else
> +                AC_MSG_WARN([Many automated tests will fail with --disable-gconf. See bug 1167201.])

I don't think this message is very useful, but meh.

Anyways, I do agree that auto-disable is not good, and we should remove them when we see one, but cf. my previous comments, those broken test checks should be fixed independently of that.
Attachment #8608818 - Flags: review?(mh+mozilla) → review+
Filed bug 1167627 for really fixing isLinux.
https://hg.mozilla.org/mozilla-central/rev/220f2f70adc9
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla41
This broke builds for me on Fedora 21:
0:12.38 configure: error: * * * Could not find gconf-2.0

Fix is easy:
sudo yum install GConf2-devel

But this should at least get added to the MDN build prerequisites and |mach bootstrap|.
Depends on: 1168861
Can I ask you to fix the build docs? I'm not sure which ones exist nowadays.

I've filed bug 1168861 for the bootstrap fixup, which should be easy.
Sure, I added it to the Red Hat/Fedora section of:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Linux_Prerequisites

Is this likely to affect other distros? I'm not sure what package is (may be) needed elsewhere.
Yes, I also encountered the "Could not find gconf-2.0" error message when building Firefox OS on Ubuntu 14.04.

It can be fixed by:
sudo apt-get install libgconf2-dev
How does one build FF on Fedora22 then? It doesn't have Gconf2-devel
What does it have instead?

You can --disable-gconf but that will run into the original problem of tests failing and other weirdness.
(In reply to Olli Pettay [:smaug] from comment #14)
> How does one build FF on Fedora22 then? It doesn't have Gconf2-devel

| sudo dnf install Gconf2-devel | works for me on a newly installed Fedora 22 Workstation installation.
Sorry for the extra bugspam, that should be | sudo dnf install GConf2-devel | (it's apparently case-sensitive, so big 'C' is needed).
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.