Bug#927731: epiphany-browser/i386: private libdazzle not loaded
On 28/08/2019 11:44, Simon McVittie wrote: > On Wed, 28 Aug 2019 at 08:29:20 +0100, Simon McVittie wrote: >> I'm not sure why the RPATH/RUNPATH isn't being set, because ephymain >> and ephywebprocessextension both have "install_rpath: pkglibdir" in >> their respective meson.build files, but for some reason only the one >> for ephymain seems to "stick"? > > ephywebprocessextension does seem to get a correct RUNPATH, so it > isn't that. > > The only binary that links to libdazzle but doesn't have a RUNPATH seems > to be libephymisc.so (libephysync.so also doesn't have a RUNPATH, but > it doesn't link directly to libdazzle either). I wonder whether one of > those could be the problem? If you can reproduce this but you can't tell > me how I can, please try an epiphany-browser built with this patch: > To reproduce it, first remove the Debian package libdazzle-1.0-0 if you have it installed And then you can use any of this two options 1) Checking that the ugly warning about missing libdazzle doesn't appear when starting epiphany from a shell 2) Try to use Epiphany password manager to log into a previous site with saved credentials (like bugzilla). If epiphany is able to automatically fill the saved password then its working. I tested the first patch (the one quoted below) and it fixed the issue for me. > = > diff --git a/lib/meson.build b/lib/meson.build > index be5af33ef..0eb47570e 100644 > --- a/lib/meson.build > +++ b/lib/meson.build > @@ -87,7 +87,8 @@ libephymisc = shared_library('ephymisc', >dependencies: libephymisc_deps, >include_directories: libephymisc_includes, >install: true, > - install_dir: pkglibdir > + install_dir: pkglibdir, > + install_rpath: pkglibdir > ) > > ephymisc_dep = declare_dependency( > = > After the above patch it seems to be working as expected (without having to install Debian package libdazzle-1.0-0) and I can see how now it links with the right library. $ ldd /usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so|grep -i dazz libdazzle-1.0.so.0 => /usr/lib/x86_64-linux-gnu/epiphany-browser/libdazzle-1.0.so.0 (0x7fd0f99d4000) Thanks! signature.asc Description: OpenPGP digital signature
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
On Wed, 28 Aug 2019 at 08:29:20 +0100, Simon McVittie wrote: > I'm not sure why the RPATH/RUNPATH isn't being set, because ephymain > and ephywebprocessextension both have "install_rpath: pkglibdir" in > their respective meson.build files, but for some reason only the one > for ephymain seems to "stick"? ephywebprocessextension does seem to get a correct RUNPATH, so it isn't that. The only binary that links to libdazzle but doesn't have a RUNPATH seems to be libephymisc.so (libephysync.so also doesn't have a RUNPATH, but it doesn't link directly to libdazzle either). I wonder whether one of those could be the problem? If you can reproduce this but you can't tell me how I can, please try an epiphany-browser built with this patch: = diff --git a/lib/meson.build b/lib/meson.build index be5af33ef..0eb47570e 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -87,7 +87,8 @@ libephymisc = shared_library('ephymisc', dependencies: libephymisc_deps, include_directories: libephymisc_includes, install: true, - install_dir: pkglibdir + install_dir: pkglibdir, + install_rpath: pkglibdir ) ephymisc_dep = declare_dependency( = Or if that isn't sufficient, try adding this as well: = diff --git a/lib/sync/meson.build b/lib/sync/meson.build index 5a5b066e8..73a0bfa1d 100644 --- a/lib/sync/meson.build +++ b/lib/sync/meson.build @@ -39,7 +39,8 @@ libephysync = shared_library('ephysync', dependencies: libephysync_deps, include_directories: libephysync_includes, install: true, - install_dir: pkglibdir + install_dir: pkglibdir, + install_rpath: pkglibdir ) ephysync_dep = declare_dependency( = Thanks, smcv
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
On Wed, 28 Aug 2019 at 03:38:13 +0200, Carlos Alberto Lopez Perez wrote: > What is broke is not the new search bar, but the libephywebextension.so > which is unrelated with the search bar. > > This extension is injected into the WebProcess and is used for things > like remembering passwords on sites (the typical login form) How can I make Epiphany try to load this extension? How can I tell whether this feature is working? (Please note that I am not an epiphany maintainer, only a GNOME team member trying to help - so please do not assume that I know anything about Epiphany beyond "it's a web browser and it uses GNOME libraries".) > It seems that in the linking process this .so library got linked with > the system libdazzle by mistake. There is no system libdazzle during compilation of epiphany: linking with a bundled library leaves the same DT_NEEDED reference to the SONAME of the bundled library as linking with a system library of the same name. What needs to happen is for the extension to also get a RPATH or RUNPATH pointing to the bundled library - which seems to have worked as intended for libephymain.so, at least on amd64, but not for libephywebextension.so. I'm not sure why the RPATH/RUNPATH isn't being set, because ephymain and ephywebprocessextension both have "install_rpath: pkglibdir" in their respective meson.build files, but for some reason only the one for ephymain seems to "stick"? The fact that installing the system version of libdazzle makes it work is somewhat unexpected, because the system version in buster is older than the version required by Epiphany, which is why we're trying to use the bundled copy in the first place. If the system copy was sufficient then we would have preferred to use that one, which would have generated a dpkg/apt-level dependency. > rebuild this library declaring a build-conflicts with the system > libdazzle That wouldn't have any effect, because the system libdazzle was not installed during compilation of epiphany-browser anyway. In the buildd log, for example https://buildd.debian.org/status/fetch.php?pkg=epiphany-browser=i386=3.32.1.2-2=1556409731=0 for i386: Package versions: adduser_3.118 ... zlib1g-dev_1:1.2.11.dfsg-1 ... Dependency libdazzle-1.0 found: NO (tried pkgconfig and cmake) the "Package versions" line (which lists every package installed in the chroot) does not mention libdazzle. smcv
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
On 28/08/2019 03:07, Carlos Alberto Lopez Perez wrote: > I can confirm this bug in last Debian sid (also in stable) and on AMD64. > > if you simply do "apt install epiphany-browser" libdazzle-1.0-0 is not > installed. > > The problem is not only the ugly warning on stderr, but that you miss > the new nice search bar at all. You can read about this here: > > https://blogs.gnome.org/mcatanzaro/2019/03/27/epiphany-3-32-and-webkitgtk-2-24/ > > Installing libdazzle-1.0-0 fixes the problem and makes the new nice > address bar work. > > You can check this yourself by installing/removing libdazzle-1.0-0 and > reopening epiphany and seeing the different address bar. > > Please, declare a dependency on libdazzle for the epiphany-browser. Sorry, seem i tested too fast here. What is broke is not the new search bar, but the libephywebextension.so which is unrelated with the search bar. This extension is injected into the WebProcess and is used for things like remembering passwords on sites (the typical login form) Also you can check how libephywebextension.so only loads into the WebKitWebProcess pid map if it can resolve the linker reference to libdazzle. It seems that in the linking process this .so library got linked with the system libdazzle by mistake. So the fix is either to declare a dependecy on the system libdazzle or rebuild this library declaring a build-conflicts with the system libdazzle to avoid this .so linking with it (instead the package embeded copy of libdazzle) $ ldd /usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so|grep -i dazz libdazzle-1.0.so.0 => not found $ apt-cache policy epiphany-browser epiphany-browser: Installed: 3.32.1.2-2 Candidate: 3.32.1.2-2 Version table: *** 3.32.1.2-2 990 990 http://httpredir.debian.org/debian buster/main amd64 Packages 100 /var/lib/dpkg/status signature.asc Description: OpenPGP digital signature
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
On 28/04/2019 01:01, Simon McVittie wrote: > Control: tags -1 + moreinfo > > On Tue, 23 Apr 2019 at 02:46:53 +0800, 積丹尼 Dan Jacobson wrote: >> SM> Does this perhaps depend on settings or something? If you create a new >> SM> temporary user account, log in as the new user and run epiphany-browser, >> SM> do you get the same warnings? >> >> Same on AMD64: >> >> $ su - some_vanilla_acct >> $ DISPLAY=:0 epiphany > ... >> Error loading module >> '/usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': >> libdazzle-1.0.so.0: cannot open shared object file: No such file or >> directory > > I haven't been able to reproduce this, but libephywebextension.so also > doesn't appear in epiphany's /proc/$pid/maps for me. > It doesn't appear inside the epiphany's pid map because libephywebextension.so is a WebKitGTK WebProcess extension and not an epiphany/UIProcess plugin. It get's loaded in the WebKitWebProcess pid that epiphany executes. And it only gets loaded if the linker is able to resolve all the symbols (including libdazzle-1.0.so.0), otherwise the WebProcess skips loading it. > Was some_vanilla_acct an entirely new user account with no prior > configuration? > > Do you have some sort of configuration, perhaps system-wide, that might > cause epiphany-browser to load web extensions, where it doesn't for me? > > Is there any feature that is observably not working as a result of > libephywebextension.so not loading, or is the warning message the only > symptom that you see? > I can confirm this bug in last Debian sid (also in stable) and on AMD64. if you simply do "apt install epiphany-browser" libdazzle-1.0-0 is not installed. The problem is not only the ugly warning on stderr, but that you miss the new nice search bar at all. You can read about this here: https://blogs.gnome.org/mcatanzaro/2019/03/27/epiphany-3-32-and-webkitgtk-2-24/ Installing libdazzle-1.0-0 fixes the problem and makes the new nice address bar work. You can check this yourself by installing/removing libdazzle-1.0-0 and reopening epiphany and seeing the different address bar. Please, declare a dependency on libdazzle for the epiphany-browser. Thanks signature.asc Description: OpenPGP digital signature
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
Why don't you guys use a different name for your special load. I don't think there is any other example on Debian where this kind of thing you are doing has been used. And has been used successfully. Just don't use the same name... go into the sources, change whatever your using's name. Call it a different name... problem solved. $ epiphany $@ Error loading module '/usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': libdazzle-1.0.so.0: cannot open shared object file: No such file or directory
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
# adduser dyy $ su - dyy dyy@jidanni8:~$ DISPLAY=:0 epiphany (epiphany:12024): dbind-WARNING **: 06:20:42.763: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. (WebKitWebProcess:12047): dbind-WARNING **: 06:20:43.004: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. Error loading module '/usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': libdazzle-1.0.so.0: cannot open shared object file: No such file or directory All I know is the second part of $ strace 2> /tmp/q epiphany $ grep -C 1 -n dazz /tmp/q 141-close(3)= 0 142:openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/epiphany-browser/libdazzle-1.0.so.0", O_RDONLY|O_CLOEXEC) = 3 143-read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\254\2\0\0\0\0\0"..., 832) = 832 -- 18599-futex(0x7fdcbef93f68, FUTEX_WAKE_PRIVATE, 2147483647) = 0 18600:Error loading module '/usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': libdazzle-1.0.so.0: cannot open shared object file: No such file or directory 18601-poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) goes away if I do aptitude install libdazzle-1.0-0. SM> Do you have some sort of configuration, perhaps system-wide, that might SM> cause epiphany-browser to load web extensions, where it doesn't for me? I don't know. The reportbug script should be made to detect any... SM> Is there any feature that is observably not working as a result of SM> libephywebextension.so not loading, or is the warning message the only SM> symptom that you see? I usually a different browser on AMD64 so didn't browse all day with it. Anyways in the strace early on you do indeed load your private libdazzle. But much later you try to load it again but already forgot your private path.
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
Control: tags -1 + moreinfo On Tue, 23 Apr 2019 at 02:46:53 +0800, 積丹尼 Dan Jacobson wrote: > SM> Does this perhaps depend on settings or something? If you create a new > SM> temporary user account, log in as the new user and run epiphany-browser, > SM> do you get the same warnings? > > Same on AMD64: > > $ su - some_vanilla_acct > $ DISPLAY=:0 epiphany ... > Error loading module > '/usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': > libdazzle-1.0.so.0: cannot open shared object file: No such file or directory I haven't been able to reproduce this, but libephywebextension.so also doesn't appear in epiphany's /proc/$pid/maps for me. Was some_vanilla_acct an entirely new user account with no prior configuration? Do you have some sort of configuration, perhaps system-wide, that might cause epiphany-browser to load web extensions, where it doesn't for me? Is there any feature that is observably not working as a result of libephywebextension.so not loading, or is the warning message the only symptom that you see? smcv
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
SM> Does this perhaps depend on settings or something? If you create a new SM> temporary user account, log in as the new user and run epiphany-browser, SM> do you get the same warnings? Same on AMD64: $ su - some_vanilla_acct $ DISPLAY=:0 epiphany (epiphany:8477): dbind-WARNING **: 02:40:20.380: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. (WebKitWebProcess:8500): dbind-WARNING **: 02:40:21.817: Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. Error loading module '/usr/lib/x86_64-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': libdazzle-1.0.so.0: cannot open shared object file: No such file or directory Package: epiphany-browser Version: 3.32.1.2-1 -- System Information: Debian Release: 10.0 APT prefers experimental APT policy: (990, 'experimental'), (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 4.19.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=zh_TW.UTF-8, LC_CTYPE=zh_TW.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Init: systemd (via /run/systemd/system) Versions of packages epiphany-browser depends on: ii dbus-x11 [dbus-session-bus] 1.13.8-1 ii epiphany-browser-data3.32.1.2-1 ii gsettings-desktop-schemas3.32.0-1 ii iso-codes4.2-1 ii libc62.28-8 ii libcairo21.16.0-4 ii libgcr-base-3-1 3.28.1-2 ii libgcr-ui-3-13.28.1-2 ii libgdk-pixbuf2.0-0 2.38.1+dfsg-1 ii libglib2.0-0 2.60.0-1 ii libgmp10 2:6.1.2+dfsg-4 ii libgtk-3-0 3.24.8-1 ii libhogweed4 3.4.1-1 ii libicu63 63.1-6 ii libjavascriptcoregtk-4.0-18 2.24.1-1 ii libjson-glib-1.0-0 1.4.4-2 ii libnettle6 3.4.1-1 ii libnotify4 0.7.7-4 ii libpango-1.0-0 1.42.4-6 ii libsecret-1-00.18.8-1 ii libsoup2.4-1 2.66.1-1 ii libsqlite3-0 3.27.2-2 ii libwebkit2gtk-4.0-37 2.24.1-1 ii libxml2 2.9.8+dfsg-1+b1 Versions of packages epiphany-browser recommends: ii ca-certificates 20190110 pn evince pn yelp epiphany-browser suggests no packages. -- no debconf information
Bug#927731: epiphany-browser/i386: private libdazzle not loaded
Control: retitle -1 epiphany-browser/i386: private libdazzle not loaded On Mon, 22 Apr 2019 at 10:29:15 +0800, 積丹尼 Dan Jacobson wrote: > Users will get the message > > Error loading module > > '/usr/lib/i386-linux-gnu/epiphany-browser/web-extensions/libephywebextension.so': > libdazzle-1.0.so.0: cannot open shared object file: No such file or > directory It's meant to load a private copy from /usr/lib/i386-linux-gnu/epiphany-browser (the version of libdazzle in buster is too old for epiphany-browser). I'm not sure why that isn't working for you: the amd64 version seems to work without warnings. libephywebextension.so has: Dynamic Section: NEEDED libephymisc.so NEEDED libgobject-2.0.so.0 NEEDED libglib-2.0.so.0 NEEDED libgio-2.0.so.0 NEEDED libsoup-2.4.so.1 NEEDED libwebkit2gtk-4.0.so.37 NEEDED libjavascriptcoregtk-4.0.so.18 NEEDED libc.so.6 SONAME libephywebextension.so RUNPATH /usr/lib/i386-linux-gnu/epiphany-browser so the runtime linker should automatically be loading all libraries it depends on from its RUNPATH, /usr/lib/i386-linux-gnu/epiphany-browser. Does this perhaps depend on settings or something? If you create a new temporary user account, log in as the new user and run epiphany-browser, do you get the same warnings? smcv