WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Firefox_getLatest, missing dependency  (Read 217 times)

Offline CNK

  • Newbie
  • *
  • Posts: 3
Firefox_getLatest, missing dependency
« on: October 13, 2020, 08:07:14 PM »
I'm using the Firefox_getLatest script to keep Firefox ESR up to date (I'm deliberately not using the firefox-ESR package which seems to fall behind the security updates). Unfortunately it fails to add "libXt.tcz" to the generated firefox.tcz.dep file, and Firefox won't start without it.

The libXt library is used by /usr/local/firefox/libxul.so (EDIT: this is after manually making libXt load, as described below, otherwise ldd obviously wouldn't find it):
Code: newbielink:javascript:void(0); [nonactive]
$ ldd /usr/local/firefox/libxul.so | grep libXt
libXt.so.6 => /usr/local/lib/libXt.so.6 (0x00007f15a7c6b000)

Note that this is with Core Pure64, though I'd be very surprised if the same bug doesn't also apply to x86 given what the libXt library is for.

If I add "libXt.tcz" to firefox.tcz.dep, then Firefox loads correctly, at least until the next update when firefox_getLatest rewrites firefox.tcz.dep.

Also, I did see this topic was discussed already at the following thread, but I'll add my suggestion that an option is added to the standard firefox_getLatest script (eg. -esr) so that it automatically downloads the latest ESR version. I've been using the -m option to do that, but a typo already caused the wrong version to start downloading once. I'll try Rich's Makefirefox_getLatestESRtcz script, but it would still be much better implemented as an option than by editing the script to change the default behaviour.
http://forum.tinycorelinux.net/index.php/topic,23104.0.html

By the way, Firefox ESR is for people who want security updates but don't want regular feature changes. So yes it makes sense to update it regularly. Security vulnerabilities fixed in the regular updates to Firefox ESR can be monitored on this page:
newbielink:https://www.mozilla.org/en-US/security/known-vulnerabilities/firefox-esr/ [nonactive]

EDIT: Version is CorePure64 11.1
« Last Edit: October 13, 2020, 08:34:53 PM by CNK »

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 8223
Re: Firefox_getLatest, missing dependency
« Reply #1 on: October 13, 2020, 09:59:34 PM »
Hi CNK
Welcome to the forum.

... Note that this is with Core Pure64, though I'd be very surprised if the same bug doesn't also apply to x86 given what the libXt library is for. ...
I used  Firefox_getLatest  on TC10 x86 a couple of months ago and all the dependencies are fine. I turns out the dependency
tree for  gtk3.tcz  differs between x86 and x86_64. For x86, the relevant part looks like this:
Code: [Select]
gtk3.tcz
   at-spi2-atk.tcz
      at-spi2-core.tcz
         Xorg-7.7-lib.tcz
            libXaw.tcz
               libXmu.tcz
                  libXt.tcz

For the x86_64 bit version,  at-spi2-core.tcz  is missing the  Xorg-7.7-lib.tcz  dependency. We'll have to wait for
Juanito to weigh in on this.

Offline CNK

  • Newbie
  • *
  • Posts: 3
Re: Firefox_getLatest, missing dependency
« Reply #2 on: October 14, 2020, 12:56:37 AM »
Thanks for the response, and the welcome.

I am a little sceptical that the problem is with the at-spi2-core.tcz dependencies. I confirmed before that "libxul.so" needs libXt, and that's part of Firefox, so to me that suggests that Firefox needs libXt regardless of what other packages might need it "down the chain" (granted I'm guessing a bit about how things are done with Tiny Core packages - I'll find out sometime soon as there are a few that I'll need to make myself).

at-spi2-core.tcz contains these files:
Code: newbielink:javascript:void(0); [nonactive]
/usr/local/etc/xdg/autostart/at-spi-dbus-bus.desktop
/usr/local/lib/at-spi2-core/at-spi-bus-launcher
/usr/local/lib/at-spi2-core/at-spi2-registryd
/usr/local/lib/libatspi.so
/usr/local/lib/libatspi.so.0
/usr/local/lib/libatspi.so.0.0.1
/usr/local/share/dbus-1/accessibility-services/org.a11y.atspi.Registry.service
/usr/local/share/dbus-1/services/org.a11y.Bus.service
/usr/local/share/defaults/at-spi2/accessibility.conf

So there's only one shared library file, and (on x86_64) ldd shows that it has all of the shared libraries it needs (and doesn't need libXt):
Code: newbielink:javascript:void(0); [nonactive]
$ ldd /usr/local/lib/libatspi.so
linux-vdso.so.1 (0x00007ffeed1af000)
libdbus-1.so.3 => /usr/local/lib/libdbus-1.so.3 (0x00007fba8c0cf000)
libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x00007fba8c085000)
libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x00007fba8bf88000)
libX11.so.6 => /usr/local/lib/libX11.so.6 (0x00007fba8be6a000)
libc.so.6 => /lib/libc.so.6 (0x00007fba8bce9000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007fba8bcca000)
libelogind.so.0 => /usr/local/lib/libelogind.so.0 (0x00007fba8bc52000)
libffi.so.6 => /usr/local/lib/libffi.so.6 (0x00007fba8ba4b000)
libpcre.so.1 => /usr/local/lib/libpcre.so.1 (0x00007fba8ba0f000)
libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x00007fba8b9e9000)
libXau.so.6 => /usr/local/lib/libXau.so.6 (0x00007fba8b9e4000)
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x00007fba8b9dc000)
libdl.so.2 => /lib/libdl.so.2 (0x00007fba8b9d5000)
/lib/ld-linux-x86-64.so.2 (0x00007fba8c34d000)

Yet the package Xorg-7.7-lib.tcz isn't installed:
Code: newbielink:javascript:void(0); [nonactive]
$ tce-status -i | grep Xorg
 [nothing]

So I wonder if the x86_64 version legitimately gets all of the libraries it need via the libX11.tcz dependency, and doesn't need Xorg-7.7-lib.tcz?

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 12490
Re: Firefox_getLatest, missing dependency
« Reply #3 on: October 14, 2020, 01:35:15 AM »
The Xorg-7.7-lib meta extension was created as an easy way of meeting dependencies, but in fact it often results in loading extensions that are not required - for this reason I've been using the actual libX* deps (when I remember to do so).

I recompiled firefox-ESR in the CorePure64 repo recently and it has libXt as a dep, which would be hidden by the use of Xorg-7.7-lib as a dep for at-spi2-core in the Core repo.

We can change the at-spi2-core dep file in the Core repo and adjust the Firefox_getLatest script to include libXt as a dep if that makes most sense?

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 8223
Re: Firefox_getLatest, missing dependency
« Reply #4 on: October 14, 2020, 06:42:37 AM »
HI Juanito
... We can change the at-spi2-core dep file in the Core repo and adjust the Firefox_getLatest script to include libXt as a dep if that makes most sense?
I searched the  .dep  files in the TC11 x86 repo and found the following:

Code: [Select]
tc@box:~$ grep -i "at-spi2-core.tcz" /11.x/x86/tcz/*.dep
/11.x/x86/tcz/at-spi2-atk.tcz.dep:at-spi2-core.tcz
/11.x/x86/tcz/at-spi2-core-dev.tcz.dep:at-spi2-core.tcz
/11.x/x86/tcz/at-spi2-core-gir.tcz.dep:at-spi2-core.tcz
Not much risk there.

Code: [Select]
tc@box:~$ grep -i "at-spi2-atk.tcz" /11.x/x86/tcz/*.dep
/11.x/x86/tcz/at-spi2-atk-dev.tcz.dep:at-spi2-atk.tcz
/11.x/x86/tcz/gtk3.tcz.dep:at-spi2-atk.tcz
Maybe  Xorg-7.7-lib  was supposed to be a  gtk3  dependency?  gtk2.tcz.dep  in TC11 x86_64 has it listed.

Moving one step higher in the food chain:
Code: [Select]
tc@box:~$ grep -i "gtk3.tcz" /11.x/x86/tcz/*.dep
/11.x/x86/tcz/adwaita-icon-theme.tcz.dep:gtk3.tcz
/11.x/x86/tcz/appstream-glib.tcz.dep:gtk3.tcz
/11.x/x86/tcz/bluefish.tcz.dep:gtk3.tcz
/11.x/x86/tcz/brasero.tcz.dep:gtk3.tcz
/11.x/x86/tcz/clutter.tcz.dep:gtk3.tcz
/11.x/x86/tcz/dconf.tcz.dep:gtk3.tcz
/11.x/x86/tcz/evince.tcz.dep:gtk3.tcz
/11.x/x86/tcz/file-roller.tcz.dep:gtk3.tcz
/11.x/x86/tcz/firefox-ESR.tcz.dep:gtk3.tcz
/11.x/x86/tcz/fontforge.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gcr.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gdl.tcz.dep:gtk3.tcz
/11.x/x86/tcz/glade.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gnome-autoar.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gnome-calculator.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gnome-desktop.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gnome-terminal.tcz.dep:vte-gtk3.tcz
/11.x/x86/tcz/goffice.tcz.dep:gtk3.tcz
/11.x/x86/tcz/grisbi.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gtk3-dev.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gtk3-gir.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gtk-engine-unico.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gtkmm.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gtksourceview.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gucharmap.tcz.dep:gtk3.tcz
/11.x/x86/tcz/gvim.tcz.dep:gtk3.tcz
/11.x/x86/tcz/l3afpad.tcz.dep:gtk3.tcz
/11.x/x86/tcz/libdazzle.tcz.dep:gtk3.tcz
/11.x/x86/tcz/libgda.tcz.dep:gtk3.tcz
/11.x/x86/tcz/libhandy.tcz.dep:gtk3.tcz
/11.x/x86/tcz/libpeas.tcz.dep:gtk3.tcz
/11.x/x86/tcz/libwnck.tcz.dep:gtk3.tcz
/11.x/x86/tcz/notification-daemon.tcz.dep:gtk3.tcz
/11.x/x86/tcz/p7zip_gui.tcz.dep:wxwidgetsgtk3.tcz
/11.x/x86/tcz/remmina.tcz.dep:vte-gtk3.tcz
/11.x/x86/tcz/seamonkey.tcz.dep:gtk3.tcz
/11.x/x86/tcz/veracrypt.tcz.dep:wxwidgetsgtk3.tcz
/11.x/x86/tcz/vivaldi.tcz.dep:gtk3.tcz
/11.x/x86/tcz/vte-gtk3-dev.tcz.dep:vte-gtk3.tcz
/11.x/x86/tcz/vte-gtk3-gir.tcz.dep:vte-gtk3.tcz
/11.x/x86/tcz/vte-gtk3.tcz.dep:gtk3.tcz
/11.x/x86/tcz/webkitgtk4.tcz.dep:gtk3.tcz
/11.x/x86/tcz/wireshark.tcz.dep:gtk3.tcz
/11.x/x86/tcz/wxwidgetsgtk3-dev.tcz.dep:wxwidgetsgtk3.tcz
/11.x/x86/tcz/zenity.tcz.dep:gtk3.tcz
That's a fair amount of potential breakage.

Quote
I recompiled firefox-ESR in the CorePure64 repo recently and it has libXt as a dep, which would be hidden by the use of Xorg-7.7-lib as a dep for at-spi2-core in the Core repo.
There's nothing that says the same dependency can't be listed more than once. If B and C both depend on A, they can
still be dependencies of D. tce-load will only pull in A once and ignore any further requests for it.

Offline CNK

  • Newbie
  • *
  • Posts: 3
Re: Firefox_getLatest, missing dependency
« Reply #5 on: October 14, 2020, 06:36:34 PM »
Quote
Code: newbielink:javascript:void(0); [nonactive]
tc@box:~$ grep -i "at-spi2-atk.tcz" /11.x/x86/tcz/*.dep
/11.x/x86/tcz/at-spi2-atk-dev.tcz.dep:at-spi2-atk.tcz
/11.x/x86/tcz/gtk3.tcz.dep:at-spi2-atk.tcz
Maybe  Xorg-7.7-lib  was supposed to be a  gtk3  dependency?  gtk2.tcz.dep  in TC11 x86_64 has it listed.

I'll just point out that Firefox (and therefore GTK3) is running for me without Xorg-7.7-lib, though I can't say for sure that all of the libraries it's using were loaded for that specific package. I have checked all of the .so files in gtk3.tcz using ldd and none use libXt. Here's a list of the X libraries that I have installed:
Code: newbielink:javascript:void(0); [nonactive]
$ tce-status -i  | grep X
libX11
libXau
libXcomposite
libXcursor
libXdamage
libXdmcp
libXext
libXfixes
libXft
libXi
libXinerama
libXrandr
libXrender
libXt
libXxf86vm

Comparing with Xorg-7.7-lib.tcz.dep the ones in common are:
Code: newbielink:javascript:void(0); [nonactive]
libXcomposite
libXcursor
libXdamage
libXft
libXi
libXinerama
libXrandr
libXxf86vm

Those are all already shown in gtk3.tcz.tree for CorePure64. So any extra libraries loaded for Xorg-7.7-lib.tcz wouldn't be needed (having established above that libXt isn't used by any of the GTK3 libs, only Firefox itself).
« Last Edit: October 14, 2020, 06:41:22 PM by CNK »

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 8223
Re: Firefox_getLatest, missing dependency
« Reply #6 on: October 14, 2020, 08:10:04 PM »
Hi CNK
Taking another look at  gtk3.tcz.dep,  I see it includes the following X libraries:
Code: [Select]
libXcomposite.tcz
libXcursor.tcz
libXinerama.tcz
libXrandr.tcz
libXi.tcz
which makes me think maybe they were put there in lieu of  Xorg-7.7-lib.tcz.  So maybe  Xorg-7.7-lib  doesn't
need to be in  at-spi2-core.tcz.dep  after all.

Here's the complete list of everything those 5 dependencies pull in:
Code: [Select]
libXcomposite.tcz
   libX11.tcz
      libxcb.tcz
         libXau.tcz
         libXdmcp.tcz
libXcursor.tcz
   libXrender.tcz
      libX11.tcz
         libxcb.tcz
            libXau.tcz
            libXdmcp.tcz
   libXfixes.tcz
      libX11.tcz
         libxcb.tcz
            libXau.tcz
            libXdmcp.tcz
libXinerama.tcz
   libXext.tcz
      libX11.tcz
         libxcb.tcz
            libXau.tcz
            libXdmcp.tcz
libXrandr.tcz
   libXext.tcz
      libX11.tcz
         libxcb.tcz
            libXau.tcz
            libXdmcp.tcz
   libXrender.tcz
      libX11.tcz
         libxcb.tcz
            libXau.tcz
            libXdmcp.tcz
libXi.tcz
   libXext.tcz
      libX11.tcz
         libxcb.tcz
            libXau.tcz
            libXdmcp.tcz

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 12490
Re: Firefox_getLatest, missing dependency
« Reply #7 on: October 15, 2020, 04:01:07 AM »
The at-spi2-core dep file in CorePure64 contains:
Code: [Select]
dbus.tcz
glib2.tcz
libICE.tcz
libSM.tcz
libX11.tcz

If we change to this in Core, as a minimum the firefox_getLatest script will need changing to add libXt as a dep to the firefox extension it creates - the question is will the change also unmask other deps previously provided by the Xorg-7.7-lib dep file?

Online Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 8223
Re: Firefox_getLatest, missing dependency
« Reply #8 on: October 15, 2020, 05:46:45 AM »
Hi Juanito
... the question is will the change also unmask other deps previously provided by the Xorg-7.7-lib dep file?
To Firefox, probably not. To anything else that currently depends on gtk3.tcz, I don't know.

I think it's a relic that was added for reasons long forgotten. That dependency has been there since  at-spi2-core
was introduced in TC5.

Offline Juanito

  • Administrator
  • Hero Member
  • *****
  • Posts: 12490
Re: Firefox_getLatest, missing dependency
« Reply #9 on: October 15, 2020, 07:31:54 AM »
at-spi2-core deps adjusted