How do I install binary packages on GoboLinux? (e.g. firefox)

Hi!
I would like to ask how to install binary packages on GoboLinux.

Especially web browsers take an unbearable amount of time to compile unfortunately, so I’d like to take the Firefox 87.0 binary as an example.

Upon unpacking firefox-87.0.tar.bz2 the contents look like so:

application.ini     firefox-bin.sig     liblgpllibs.so    libnss3.so      libssl3.so         plugin-container.sig
browser             firefox.sig         libmozavcodec.so  libnssckbi.so   libxul.so          precomplete
crashreporter       fonts               libmozavutil.so   libnssutil3.so  libxul.so.sig      removed-files
crashreporter.ini   gmp-clearkey        libmozgtk.so      liboggwasm.so   minidump-analyzer  Throbber-small.gif
defaults            gtk2                libmozsandbox.so  libplc4.so      omni.ja            updater
dependentlibs.list  icons               libmozsqlite3.so  libplds4.so     pingsender         updater.ini
firefox             libfreeblpriv3.so   libmozwayland.so  libsmime3.so    platform.ini       update-settings.ini
firefox-bin         libgraphitewasm.so  libnspr4.so       libsoftokn3.so  plugin-container

I am able to run ./firefox-bin but now I would like to install it into the /Programs/Firefox/87.0 folder.
The current Firefox 76.0.1 installation folder looks like this:

$ ls /Programs/Firefox/76.0.1 
bin  package  Resources  share

So it looks like there is some work to do :slight_smile:

Two questions:

  1. How would I go about installing the package correctly, in a manual fashion?
  2. Is there an automatic way to do this?

I have found a Documentation article addressing Binary Packages. So I have tried to create a binary recipe in the fashion of MakeRecipe Firefox_bin 87.0 <bin_archive_url> .

However it seems MakeRecipe does not automatically handle _bin type recipes: MakeRecipe: Could not detect recipe type. Recipe needs to be completed manually.

Follow-up question: Is MakeRecipe missing this on the implementation side (to install it automatically), or is it firefox-87.0.tar.bz2 simply missing the required information to process it in an (semi-)automated manner?

Thanks in advance! I hope this type of information might be of benefit for future GoboLinux users aswell! :))

Not sure if this is the “official” method, but I unpack the binary FF distribution in /Programs/Firefox/Official and then link the Current symlink to that.

Then I add a firefox.desktop shortcut in ~/.local/share/applications but it’s quite possible you’re better off creating one in /Programs/Firefox/Official and then linking that one into /System/Index/share/applications/ yourself.

I also make sure that the /Programs/Firefox/Official folder is writable by either the owner or the group of my user such that autoupdates work seamlessly.

1 Like

Indeed, building Firefox can be quite time consuming. What I do is just the same as what @ermo described: I download the tarball from mozilla.org and uncompress it under /Programs/Firefox/<version>/package.

The bin and share directories you see on your tree have been prepared by ourselves; the former is basically a wrapper that executes firefox.bin whereas the latter contains the .desktop file and icons. I just copy those two directories over the new version and call SymlinkProgram Firefox <version> to activate it.

Recipes are meant to deal with the compilation of source code. While we do have some tricks to allow recipes to download binary packages, we don’t recommend publishing them on the recipe store, as that may lead to misunderstandings.

1 Like