Closed Bug 1520131 Opened 5 years ago Closed 5 years ago

--disable-updater build fails: toolkit/xre/nsXREDirProvider.cpp:22:10: fatal error: 'commonupdatedir.h' file not found

Categories

(Firefox :: Untriaged, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 66
Tracking Status
firefox-esr60 --- unaffected
firefox64 --- unaffected
firefox65 --- unaffected
firefox66 --- fixed

People

(Reporter: xftroxgpx, Assigned: mossop)

References

Details

(Keywords: regression)

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3622.0 Safari/537.36

Steps to reproduce:

Tried to build latest firefox-hg on ArchLinux x86_64

latest checked out changeset is:
changeset: 453851:e49161da5784
tag: tip
parent: 453845:a01a559aa611
parent: 453850:5ecfcb615bd6
user: Brindusan Cristian <cbrindusan@mozilla.com>
date: Tue Jan 15 06:38:06 2019 +0200
summary: Merge inbound to mozilla-central. a=merge

Problematic command that mach build executed:

/tmp
$ /usr/bin/ccache /usr/bin/clang++ -o Unified_cpp_toolkit_xre0.o -c -I/tmp/obj-x86_64-pc-linux-gnu/dist/stl_wrappers -I/tmp/obj-x86_64-pc-linux-gnu/dist/system_wrappers -include /home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DPROXY_PRINTING=1 -DOS_POSIX=1 -DOS_LINUX=1 -DUSE_GLX_TEST '-DMOZ_APP_NAME="firefox"' '-DMOZ_APP_BASENAME="Firefox"' '-DMOZ_APP_DISPLAYNAME="Nightly"' '-DMOZ_APP_VERSION="66.0a1"' '-DOS_TARGET="Linux"' '-DMOZ_WIDGET_TOOLKIT="gtk3"' '-DTARGET_OS_ABI="Linux_x86_64-gcc3"' -DGRE_MILESTONE=66.0a1 -DAPP_VERSION=66.0a1 '-DAPP_ID={ec8030f7-c20a-464f-9b0e-13a3a9e97384}' -DMOZ_BUILD_APP_IS_BROWSER -DTOPOBJDIR=/tmp/obj-x86_64-pc-linux-gnu -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/xre -I/tmp/obj-x86_64-pc-linux-gnu/toolkit/xre -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/components/printingui -I/tmp/obj-x86_64-pc-linux-gnu/ipc/ipdl/_ipdlheaders -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/ipc/chromium/src -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/ipc/glue -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/other-licenses/nsis/Contrib/CityHash/cityhash -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/components/find -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/components/printingui/ipc -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/components/windowwatcher -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/profile -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/config -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/dom/base -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/dom/commandhandler -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/dom/ipc -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/dom/webbrowserpersist -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/testing/gtest/mozilla -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/crashreporter -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/xpcom/build -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/widget/xremoteclient -I/tmp/obj-x86_64-pc-linux-gnu/dist/include -I/tmp/obj-x86_64-pc-linux-gnu/dist/include/nspr -I/tmp/obj-x86_64-pc-linux-gnu/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /tmp/obj-x86_64-pc-linux-gnu/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Qunused-arguments -Wall -Wbitfield-enum-conversion -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wshadow-field-in-constructor-modified -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wfloat-overflow-conversion -Wfloat-zero-conversion -Wloop-analysis -Wc++1z-compat -Wc++2a-compat -Wcomma -Wimplicit-fallthrough -Wstring-conversion -Wtautological-overlap-compare -Wtautological-unsigned-enum-zero-compare -Wtautological-unsigned-zero-compare -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=return-std-move -Wno-error=atomic-alignment -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -fno-sized-deallocation -pipe -march=native -Wno-trigraphs -fno-schedule-insns2 -fno-delete-null-pointer-checks -mtune=native -fomit-frame-pointer -Ofast -fno-fast-math -D_FORTIFY_SOURCE=2 -mno-avx -fPIC -mretpoline -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-exceptions -fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -pthread -pipe -g -O2 -fomit-frame-pointer -funwind-tables -I/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/widget/gtk/compat-gtk3 -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/uuid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gio-unix-2.0 -I/usr/include/libdrm -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/gtk-3.0/unix-print -pthread -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/libffi-3.2.1/include -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/uuid -I/usr/include/cairo -I/usr/include/pixman-1 -Wno-error=shadow -MD -MP -MF .deps/Unified_cpp_toolkit_xre0.o.pp -fcolor-diagnostics /tmp/obj-x86_64-pc-linux-gnu/toolkit/xre/Unified_cpp_toolkit_xre0.cpp

Actual results:

clang-7: warning: optimization flag '-fno-schedule-insns2' is not supported [-Wignored-optimization-argument]
In file included from /tmp/obj-x86_64-pc-linux-gnu/toolkit/xre/Unified_cpp_toolkit_xre0.cpp:137:
/home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/toolkit/xre/nsXREDirProvider.cpp:22:10: fatal error:
'commonupdatedir.h' file not found
#include "commonupdatedir.h"
^~~~~~~~~~~~~~~~~~~
1 error generated.

Expected results:

no error

$ find . -iname commonupdatedir.h -exec ls -la `realpath {}` \;
-rw-r--r-- 1 xftroxgpx xftroxgpx 1267 Dec 25 16:00 /home/xftroxgpx/build/1packages/4used/firefox-hg/makepkg_pacman/firefox-hg/src/firefox-hg/./toolkit/mozapps/update/common/commonupdatedir.h

Are you using --disable-updater? I suspect that might be why this wasn't caught by automation.

I'm encountering this problem as well and I do use that flag.

Indeed I am:
ac_add_options --disable-updater
in mozconfig file
Did you find a workaround? other than --enable-updater which I presume would work.

Bug 1518587 moves the #include "commonupdatedir.h" out of the #ifdef XP_WIN but looking at the diff I'm not sure why it does that. Maybe moving it back will work.

Their left side file(toolkit/xre/nsXREDirProvider.cpp) looks different(older?) than mine, however I've found the diff between the last two changesets for that file:

hg diff -r 453243:5c1a8f06c28b -r 453758:394b490d3e2d toolkit/xre/nsXREDirProvider.cpp

and what you said is still true:

diff -r 5c1a8f06c28b -r 394b490d3e2d toolkit/xre/nsXREDirProvider.cpp
--- a/toolkit/xre/nsXREDirProvider.cpp	Thu Dec 13 09:08:40 2018 +0000
+++ b/toolkit/xre/nsXREDirProvider.cpp	Mon Jan 14 17:27:34 2019 +0000
@@ -19,6 +19,7 @@
 #include "nsIToolkitChromeRegistry.h"
 #include "nsIToolkitProfileService.h"
 #include "nsIXULRuntime.h"
+#include "commonupdatedir.h"
 
 #include "nsAppDirectoryServiceDefs.h"
 #include "nsDirectoryServiceDefs.h"
@@ -47,7 +48,6 @@
 #ifdef XP_WIN
 #include <windows.h>
 #include <shlobj.h>
-#include "commonupdatedir.h"
 #endif
 #ifdef XP_MACOSX
 #include "nsILocalFileMac.h"
@@ -98,19 +98,14 @@
 
 // These are required to allow nsXREDirProvider to be usable in xpcshell tests.
 // where gAppData is null.
-static const char* GetAppProfile() {
-  if (gAppData) {
-    return gAppData->profile;
-  }
-  return nullptr;
-}
-
+#if defined(XP_MACOSX) || defined(XP_WIN)
 static const char* GetAppName() {
   if (gAppData) {
     return gAppData->name;
   }
   return nullptr;
 }
+#endif
 
 static const char* GetAppVendor() {
   if (gAppData) {
@@ -1608,14 +1603,21 @@
 nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) {
   NS_ASSERTION(aFile, "Null pointer!");
 
+  // If there is no XREAppData then there is no information to use to build
+  // the profile path so just do nothing. This should only happen in xpcshell
+  // tests.
+  if (!gAppData) {
+    return NS_OK;
+  }
+
   nsAutoCString profile;
   nsAutoCString appName;
   nsAutoCString vendor;
-  if (GetAppProfile()) {
-    profile = GetAppProfile();
+  if (gAppData->profile) {
+    profile = gAppData->profile;
   } else {
-    appName = GetAppName();
-    vendor = GetAppVendor();
+    appName = gAppData->name;
+    vendor = gAppData->vendor;
   }
 
   nsresult rv;

Removing the #include "commonupdatedir.h" line (eg. commented it out) worked well - compiled&installed firefox now.
Thank you Jan Alexander Steffens [:heftig] !

Keywords: regression
Summary: included file commonupdatedir.h not found when toolkit/xre/nsXREDirProvider.cpp was included in generated file: toolkit/xre/Unified_cpp_toolkit_xre0.cpp → --disable-updater build fails: toolkit/xre/nsXREDirProvider.cpp:22:10: fatal error: 'commonupdatedir.h' file not found
Status: UNCONFIRMED → NEW
Ever confirmed: true

(In reply to Jan Alexander Steffens [:heftig] from comment #2)

Are you using --disable-updater? I suspect that might be why this wasn't
caught by automation.

Bug 1371159 is supposed to fix automation.

Ok, this should be fixed in bug 1520139 (beta builds on android run with the updater disabled).

Depends on: 1520139

This also breaks the build on Linux (with the mozconfig option).

The build is also broken for a local Fennec/GeckoView from m-c, since the default is to not use the updater.

The patch in bug 1520139 should fix all that, though it would be useful to confirm that.

It builds again, thanks.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Assignee: nobody → dtownsend
Target Milestone: --- → Firefox 66
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: