Can I get 32-bit Firefox on Fedora 37?

Hi, I’m currently using Fedora 37 Workstation on an older piece of hardware right now, and I was wondering if I can install 32-bit Firefox to conserve memory usage. My OS doesn’t seem to have the right packages installed to run 32-bit software right now.

Unfortunately, the firefox package is no longer built for x86 32-bit in Fedora, but it looks like you can still get the official Mozilla build for Linux 32-bit at https://www.mozilla.org/en-GB/firefox/all/#product-desktop-release .

2 Likes

Unfortunately, it doesn’t look like flathub supports 32-bit (i386) Firefox either.

Thank you for your reply. I have tried downloading firefox from that link before, but my problem is that I can’t run that program after it is downloaded. I believe that it requires some 32-bit libraries which my system doesn’t have, and I am unsure of how to find them.

at this point I think Fedora is too new for you. You should use distro that is built to be used with 32 bit. Try Q4OS. it works on 32 bit machine.

I’m curious about the basis for your belief that 32-bit Firefox would conserve memory usage by enough to care about. I’m not saying you’re wrong, just saying it is a complicated question.
Do you have actual test results or references to say how much memory it might conserve?

Pointers are the bit-size (32 bit in a 32-bit build and 64 bit in a 64-bit build) so a data structure using a ton of pointers will waste a lot of memory when the (per process) data managed by those pointers is under 4GB but the program is built for 64-bit. But most data types don’t scale that way and the code itself doesn’t scale that way.

I don’t know whether Firefox makes massive use of pointers in its data structures. I’d be curious to know whether it does.

I doubt that is what the OP should be looking for. I assume the OP wants mixed architecture (64 bit OS on 64 bit hardware, but with libraries to support 32 bit programs).

That used to be the way I did everything in Centos, because there certainly are programs that are faster and smaller when the program is 32-bit on a 64-bit OS, but aren’t any better (while lots of other things are worse) if the OS is also 32-bit.

I would not have guessed that Firefox was such a program, but don’t really know that it isn’t. For programs that do behave that way, I haven’t taken the time to figure out what is needed for multi-lib on Fedora.

Edit: Looks like Fedora 37 just installs the 32-bit support by default.

Do you know what ldd is and how to use it. Finding out which libraries you are missing should be easy. Typically finding and installing those libraries is also easy.

Edit2: I was curious enough, I downloaded that 32-bit build of firefox and ran it and it simply works (I’m using it to post this). If you add some detail to your statement I can’t run that program after it is downloaded likely we can diagnose the problem.

Edit3: I have a guess at what is going wrong for you. When I changed to the directory that I unpacked the .gz to and I run firefox from the command line, it works as I described above. But if I run it when some other directory is current:

XPCOMGlueLoad error for file /home/john/firefox/libxul.so:
libdbus-glib-1.so.2: cannot open shared object file: No such file or directory
Couldn't load XPCOM.

I haven’t worked through exactly what is loading what (it isn’t simple enough for my ealier suggestion of using ldd to tell you the issue). But clearly, at some point it needs some .so files that it is packaged with to be in the right search path. You could make it work by copying the correct .so files to /lib but I wouldn’t ever do that to my Fedora system. I forget the details of the various methods that exist for making just that program search first for .so files where it was unpacked. I’d look those up again if I needed them. The easiest work around is just create a script that switches to that directory and runs firefox. Then use that script instead of directly using the 32-bit firefox.

I don’t understand why it needs a 32-bit libdbus-glib-1.so.2 when run from a different directory, but doesn’t need one when run from its own directory. I don’t have any 32-bit libdbus-glib-1.so.2 anywhere on my system, so it isn’t a matter of finding it when started from its own directory. So the methods I mentioned above would work to make it usable. But maybe it would be more appropriate to install that 32-bit .so (and whatever others it complains about next after that one is found).

sudo dnf install dbus-glib-0.112-4.fc37.i686

BTW, while diagnosing such problems, always launch the desired program from a command line. I launched it experimentally by double clicking the icon in a file browser. That fails with exactly the same error I quoted from running it not from its own directory BUT that error message is well hidden where you’re not likely to be able to get it, so all you find is that it didn’t work, not why.

Yet more odd experimental results (thing you might need to work around): When run from its own directory, it uses all my own bookmarks etc. shared with the 64-bit firefox. But after installing 32-bit libdbus-glib-1.so.2 I can run it from other directories and it created/uses a new profile.

2 Likes

Do you know what ldd is and how to use it. Finding out which libraries you are missing should be easy. Typically finding and installing those libraries is also easy.

Thank you for this information! That command was of great help. It looked like I had less of the required packages already installed on my computer, so I had to download several more packages than you, but Firefox is now working.

sudo yum install glibc.i686
sudo dnf install dbus-glib-0.112-4.fc37.i686
sudo yum install libstdc++-12.2.1-2.fc37.i686
sudo dnf install libatomic-12.2.1-2.fc37.i686
sudo dnf install gtk3-3.24.34-2.fc37.i686
sudo dnf install libX11-xcb-1.8.1-2.fc37.i686
1 Like