Tiny Core Linux
Tiny Core Extensions => TCE Bugs => Topic started by: CNK on October 13, 2020, 11: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):
$ 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:
https://www.mozilla.org/en-US/security/known-vulnerabilities/firefox-esr/
EDIT: Version is CorePure64 11.1
-
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:
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.
-
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:
/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):
$ 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:
$ 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?
-
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?
-
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:
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.tczNot much risk there.
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.tczMaybe 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:
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.tczThat's a fair amount of potential breakage.
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.
-
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.tczMaybe 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:
$ 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:
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).
-
Hi CNK
Taking another look at gtk3.tcz.dep, I see it includes the following X libraries:
libXcomposite.tcz
libXcursor.tcz
libXinerama.tcz
libXrandr.tcz
libXi.tczwhich 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:
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
-
The at-spi2-core dep file in CorePure64 contains:
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?
-
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.
-
at-spi2-core deps adjusted
-
I notice that the forum account for this script's author/maintainer, coreplayer2, shows that they haven't been "active" for over a year.
When the latest Firefox update came out, I decided to just modify the script myself and I'll attach that version. In addition to including libXt in the dependencies file, I also added the option to automatically download the latest ESR, or the latest Beta, release, using the command-line arguments "-e" and "-b" respectively. It all seems to work fine in my tests.
I could have a go at building a new firefox_getLatest.tcz when I get the time, if that's desireable, or someone else could. Or if that would be crowding in on someone else's turf, or otherwise upsetting tradition, then I'm not pushy about whether my modified version gets into the repo or not.
-
Since the original maintainer is not active, please go ahead and submit an updated extension.