Closed Bug 448375 Opened 12 years ago Closed 10 years ago

New libdbus-glib-1.so.2 dependency in nightlies

Categories

(Core :: General, defect)

x86
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla1.9.3a5
Tracking Status
status1.9.2 --- .11-fixed

People

(Reporter: moz, Assigned: glandium)

References

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

Somewhere between the 3.1a2pre 2008072602 and 2008072802 nightlies Firefox' 32 bit version began not starting anymore on my 64-bit Ubuntu system with the default 32 bit libraries installed:

./firefox-bin: error while loading shared libraries: libdbus-glib-1.so.2: cannot open shared object file: No such file or directory

I couldn't find any announcement about a dependency change. Probably we should ask distros to add missing libraries to their stock 32-bit additions or if the dependency is avoidable, well, avoid it.
Summary: New libdbus-glib-1.so.2 in nightlies → New libdbus-glib-1.so.2 dependency in nightlies
Blocks: 441636
Keywords: regression
Product: Firefox → Core
QA Contact: general → general
I tried latest nightly 64-bit build

/usr/local/firefox-3.1b3pre/firefox-bin: error while loading shared libraries: libdbus-glib-1.so.2: cannot open shared object file: No such file or directory
This affects Firefox 3.5 as well, of course, so perhaps someone should rename the bug.

This is a major problem on the RHEL 4.x, Scientific Linux 4.x, and CentOS 4.x distros, all of which are used frequently at U.S. government institutions. Anyone have a solution? I was able to get Firefox 3.0 running on these distros by compiling my own cairo and pango libraries on SL 4. I've tried building various versions of D-Bus 1.2.x, without much success so far though. D-Bus doesn't appear to like the version of libxml, I have. I'm not aware of a libdbus update for RHEL 4 or SL 4. Suggestions welcome.
The problem is that libxul.so is dynamically linked against libdbus-glib-1 while it really doesn't require it. Only components/mozgnome.so does.
components/libdbusservice.so, too.
Attached patch patch (obsolete) — Splinter Review
This is untested but should work.
Assignee: nobody → mh+mozilla
Attachment #389177 - Flags: review?(benjamin)
Attachment #389177 - Flags: review?(benjamin)
Attachment #389177 - Flags: review+
Attachment #389177 - Flags: approval1.9.1.2?
Comment on attachment 389177 [details] [diff] [review]
patch

a1912=beltzner
Attachment #389177 - Flags: approval1.9.1.2? → approval1.9.1.2+
Tried to commit this and it turned the x86-64 build red:
/tools/gcc/bin/g++  -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-long-long -pedantic -gstabs+ -fno-strict-aliasing -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions -finline-limit=50 -fPIC -shared -Wl,-z,defs -Wl,-h,libxul.so -o libxul.so  nsStaticXULComponents.o nsUnicharUtils.o nsCompressedCharMap.o nsBidiUtils.o nsRDFResource.o     -lpthread   -Wl,-rpath-link,/builds/moz2_slave/mozilla-central-linux64/build/obj-firefox/dist/bin -Wl,-rpath-link,/usr/local/lib  -Wl,--whole-archive ../../embedding/browser/gtk/src/libgtkembedmoz.a ../../toolkit/xre/libxulapp_s.a  ../../staticlib/components/libxpconnect.a ../../staticlib/components/libnecko.a ../../staticlib/components/libuconv.a ../../staticlib/components/libi18n.a ../../staticlib/components/libchardet.a ../../staticlib/components/libjar50.a ../../staticlib/components/libpref.a ../../staticlib/components/libcaps.a ../../staticlib/components/libhtmlpars.a ../../staticlib/components/libimglib2.a ../../staticlib/components/libgklayout.a ../../staticlib/components/libdocshell.a ../../staticlib/components/libembedcomponents.a ../../staticlib/components/libwebbrwsr.a ../../staticlib/components/libnsappshell.a ../../staticlib/components/libtxmgr.a ../../staticlib/components/libchrome.a ../../staticlib/components/libcommandlines.a ../../staticlib/components/libtoolkitcomps.a ../../staticlib/components/libpipboot.a ../../staticlib/components/libpipnss.a ../../staticlib/components/libgkplugin.a ../../staticlib/components/libmozfind.a ../../staticlib/components/libappcomps.a ../../staticlib/components/libunixproxy.a ../../staticlib/components/libxpinstall.a ../../staticlib/components/libjsd.a ../../staticlib/components/libautoconfig.a ../../staticlib/components/libauth.a ../../staticlib/components/libcookie.a ../../staticlib/components/libpermissions.a ../../staticlib/components/libuniversalchardet.a ../../staticlib/components/libcomposer.a ../../staticlib/components/librdf.a ../../staticlib/components/libwindowds.a ../../staticlib/components/libintlapp.a ../../staticlib/components/libfileview.a ../../staticlib/components/libstoragecomps.a ../../staticlib/components/libplaces.a ../../staticlib/components/libtkautocomplete.a ../../staticlib/components/libsatchel.a ../../staticlib/components/libpippki.a ../../staticlib/components/libucvmath.a ../../staticlib/components/libwidget_gtk2.a ../../staticlib/components/libsystem-pref.a ../../staticlib/components/libgkgfxthebes.a ../../staticlib/components/libaccessibility.a ../../staticlib/components/libremoteservice.a ../../staticlib/components/libspellchecker.a ../../staticlib/components/libzipwriter.a ../../staticlib/libxpcom_core.a ../../staticlib/libucvutil_s.a ../../staticlib/libgkgfx.a ../../staticlib/libmozreg_s.a ../../staticlib/libmorkreader_s.a ../../staticlib/libgtkxtbin.a ../../staticlib/libgfxpsshar.a ../../staticlib/libthebes.a  -Wl,--no-whole-archive -L../../dist/lib -lsqlite3 -L../../dist/bin -L../../dist/lib  -L../../dist/bin -L../../dist/lib -L../../jpeg -lmozjpeg -L../../modules/libimg/png -lmozpng ../../gfx/qcms/libmozqcms.a -L/builds/moz2_slave/mozilla-central-linux64/build/obj-firefox/dist/bin -lmozjs -L../../dist/bin -L../../dist/lib -lcrmf -lsmime3 -lssl3 -lnss3 -lnssutil3 -lsoftokn3 ../../gfx/cairo/cairo/src/libmozcairo.a ../../gfx/cairo/libpixman/src/libmozlibpixman.a   -L/usr/lib64 -lXrender -lfreetype -lfontconfig  -L../../modules/zlib/src -lmozz -L/builds/moz2_slave/mozilla-central-linux64/build/obj-firefox/dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -L/usr/lib64 -lX11  -lXext  -L/lib64 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   -L/lib64 -lgtk-x11-2.0 -latk-1.0 -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0   -lXt -lgthread-2.0 -lfreetype  -lasound -ldl -lm     
../../staticlib/components/libdocshell.a(nsDBusHandlerApp.o): In function `nsDBusHandlerApp::LaunchWithURI(nsIURI*, nsIInterfaceRequestor*)':
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:115: undefined reference to `dbus_error_init'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:118: undefined reference to `dbus_bus_get'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:119: undefined reference to `dbus_error_is_set'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:126: undefined reference to `dbus_connection_set_exit_on_disconnect'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:132: undefined reference to `dbus_message_new_method_call'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:137: undefined reference to `dbus_message_set_no_reply'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:140: undefined reference to `dbus_message_iter_init_append'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:141: undefined reference to `dbus_message_iter_append_basic'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:143: undefined reference to `dbus_connection_send'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:166: undefined reference to `dbus_message_unref'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:120: undefined reference to `dbus_error_free'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:144: undefined reference to `dbus_connection_flush'
/builds/moz2_slave/mozilla-central-linux64/build/uriloader/exthandler/nsDBusHandlerApp.cpp:145: undefined reference to `dbus_message_unref'

http://tinderbox.mozilla.org/showlog.cgi?log=Firefox/1248368994.1248369436.9578.gz&fulltext=1
Attachment #389177 - Flags: approval1.9.1.2+
The dependency was added in
http://hg.mozilla.org/mozilla-central/rev/26c8643ce483
The dependency patched above could probably be ifdef MOZ_ENABLE_LIBXUL, but a non-libxul build still wouldn't have a remotely useful browser with without dbus-glib since libdocshell.so wouldn't load.
MOZ_ENABLE_DBUS might be more appropriate.

The thing is libxul (through docshell, which is statically linked in it anyways), requires libdus, not libdbus-glib. It got the libdbus dependency indirectly, from the libdbus-glib variables that probably contains the required -ldbus.

This means that what should be done is PKG_CHECK for dbus (which version ?) and use the newly created variables to link libxul instead of the dbus-glib ones.
I think I stumbled across this bug. Trying to start FF 3.6rc2 from the tarball, I'm getting the "error loading .." message. Interpreting this bug report, I think I'd have to install 32 bit "compatibility" libs on my x86_64 system (Fedora 12)?

It'd be really nice if there were 64 bit builds as tarballs that don't require any 32 bit dependencies. Or am I missing something?

(Anyway, rc2 will hopefully be in Fedora's rawhide repository soon! But just a remark, fixing this would really make it easier for early adaptors to test new FF prereleases/nighties..)
Attached patch Patch v2Splinter Review
This patch implements what I said in comment 9. Verified on try servers: http://tinderbox.mozilla.org/showlog.cgi?log=MozillaTry/1271927533.1271931786.27875.gz&fulltext=1
Attachment #389177 - Attachment is obsolete: true
Attachment #440728 - Flags: review?(benjamin)
Attachment #440728 - Flags: review?(benjamin) → review+
http://hg.mozilla.org/mozilla-central/rev/343e2c177ed7
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9.3a5
Attachment #440728 - Flags: approval1.9.2.5?
Attachment #440728 - Flags: approval1.9.2.5?
Comment on attachment 440728 [details] [diff] [review]
Patch v2

This allows linux builds to not strictly require libdbus-glib at runtime.
Attachment #440728 - Flags: approval1.9.2.5?
Attachment #440728 - Flags: approval1.9.2.7?
Attachment #440728 - Flags: approval1.9.2.6-
Attachment #440728 - Flags: approval1.9.2.5?
Comment on attachment 440728 [details] [diff] [review]
Patch v2

We will not be taking this for 3.6.6. Moving approval request forward.
Comment on attachment 440728 [details] [diff] [review]
Patch v2

Approved for 1.9.2.9, a=dveditz for release-drivers
Attachment #440728 - Flags: approval1.9.2.9? → approval1.9.2.9+
Comment on attachment 440728 [details] [diff] [review]
Patch v2

Do any distros still need this change on the 1.9.1 branch?
Firefox 3.5.x is still supported in some active openSUSE/SUSE dists. But I could live w/o this patch.
Comment on attachment 440728 [details] [diff] [review]
Patch v2

Removing .9 approval as this missed landing before freeze. Feel free to nominate again, though the bar for approval will be higher.
Attachment #440728 - Flags: approval1.9.2.9+ → approval1.9.2.9-
Comment on attachment 440728 [details] [diff] [review]
Patch v2

Mmmm interestingly, when I checked the url you send for bugs to check-in, this bug didn't show up... Let's try to get it into .10.
Attachment #440728 - Flags: approval1.9.2.10?
Attachment #440728 - Flags: approval1.9.2.11? → approval1.9.2.11+
http://hg.mozilla.org/releases/mozilla-1.9.2/rev/0af11917e5ed

(for the record, there was a hunk in netwerk/build/Makefile.in that didn't apply)
You need to log in before you can comment on or make changes to this bug.