• Bugs
  • Tonfotos: An up-to-date list of supported Linux distributions

It’s Impossible to Be Fully Compatible with Linux

Unfortunately, unlike Windows and macOS, where there is a very short list of possible versions, the API changes very conservatively, and backwards compatibility has been maintained for decades, the situation with Linux looks like total chaos. There are hundreds of distributions, each with a unique set of libraries, kernel versions, components, and so on. And also there are many more different package managers, etc. This chaos is the price of freedom and openness. There is no single standardization, which means there is no way to guarantee at least some kind of compatibility with all possible distributions and assemblies.

Linus Torvalds himself, the legend and creator of OS Linux, has repeatedly said that creating custom applications for Linux is a nightmare. This requires building a version of it for a bunch of different popular distributions. He even publishes his own hobby app for only a small number of distributions. Here is his famous speech under the telling title “why the Linux desktop sucks”.

Tonfotos strategy for Linux support

Tonfotos is still a very young project and is in a phase of rapid growth. We just can’t afford to spend prohibitively large resources on improving compatibility with an OS that is used by less than 1% of our users, taking them away from developing cool new program features. Therefore, we are forced to limit ourselves to a simple approach:

  • We still do not refuse support for this OS.
  • All cross-platform features appear automatically in this release, but special features that require separate development to run on Linux come with the lowest priority. For example, on Linux, automatic import of photos from a smartphone is not supported.
  • We have chosen Ubuntu as our reference platform. It is, if not the most popular, then certainly one of the most popular distributions in the world, with a very simple installation, feasible for ordinary users.
  • We build and test the application only on this platform. As far as possible, we try to help all users, but if this requires debugging on some separate distribution, or even building a separate version, then we simply declare that there is no support for compatibility with this distribution.

Address to the community

The policy chosen above is a forced measure. This does not mean that we would not want our program to be used by everyone who only wants to. But we don’t and probably never will have enough resources to ensure full compatibility with all possible distributions. And even more so, we will never have enough expertise to solve compatibility problems on all these platforms.

Therefore, we want to reach out to users and encourage them to help each other on this forum, which is completely in the spirit of Linux, to share tips and experience overcoming compatibility issues. And in order to make it as convenient as possible for everyone, we suggest that we together keep an up-to-date compatibility table in this thread so that each new user can quickly understand whether it is worth expecting normal compatibility of the Tonfotos application with and version of the Linux distribution. I think this can make life much easier for many Linux users.

Please write in the comments about any (positive or negative) experience of running Tonfotos on your OS, with the obligatory indication of the version of both the distribution kit and Tonfotos

Actually, the compatibility table

Works without problems:

  • Ubuntu 18 is the OS that Tonfotos is built on
  • Ubuntu 22 - on this OS Tonfotos is being tested by developers

Known Issues

… Looking forward to your feedback!

    6 days later

    My install attempt on Debian ran into what is probably an easy solve issue - but I’m early days in my Linux life and haven’t run into this before.

    When I got to the step, sudo apt-get update, I receive the following error: Failed to fetch https://tonfotos.com/distribution/tonfotos/release/linux/debian/binary/InRelease Clearsigned file isn’t valid, got ‘NOSPLIT’ (does the network require authentication?)

    Any help for a confused n00b?

      InsulinAddict Linux autoupdate feature is temporarily broken, unfortunately. Please just install .deb or .rpm package from the web site. You can also subscribe on notifications on news section of this forum to stay informed about new releases.

        Andrey
        Wow you are fast on reply - and - I am grateful to know it’s not just me being dumb (more often the answer). It’s installed and while I have one other item to research - the install itself went through manually without incident. Thank you!

        10 months later

        Sorry for the late reply I just read this post today. First I want to say that any comments I make here are meant as observations no criticisms. I do respect the decisions you have made in regards to Linux support, it’s you software and you are free to make any decisions you feel are the best for Tonfotos. I do appreciate that you bother with Linux support at all.
        Until now I have only experimented with Linux, but I have decided to try to use Linux full time. I am still working on the transition. I recently purchased a Family License so I can use Tonfotos on Windows and Linux as I make the transition. Linux is also on my laptop. So you have another dedicated, almost, Linux user. Hopefully more will come on board.
        I have one comment regarding the use of Ubuntu as your development platform, again totally up to you.
        My observation is that while Ubuntu is a large and popular distribution it is not a base distribution. It is based on Debian and so are a lot of other distributions. But, Ubuntu changes some of the Debian defaults which means that some things done on Ubuntu are not backwards compatible with Debian and all of the other distributions derived from Debian. Some of those differences are the PPA system and the inclusion of the closed SNAP ecosystem. While I have no problem with Ubuntu making these decisions, it’s their software not mine, I worry it will complicate Linux compatibility more in the future than it already is. Anyway, like I said, just an observation. By the way I use MX Linux with the KDE desktop and have Tonfotos running on 2 machines now.

        Cheers,
        Gord
        Lonely Tonfotos Linux User

        6 months later

        Andrey

        Hi Andrey,

        As I am impressed by the quality of face detection, I have tried several Linux installs.
        Unfortunately, to no real succes.
        Here is my list:
        Ubuntu 18.04 LTS: tonfotos does not start. it wants GLIBC 2.29 and can only find 2.27. I did not succeed in compiling a higher version.
        Ubuntu 18.10: same problem, updates are nog possible anymore, as the repositories are no longer online.
        Ubuntu 22.04 LTS: initially tonfotos ran for two days, but then the UI froze and did not recover with any restart.
        Debian 12 (bookworm), Gnome: same as Ubuntu 22.04
        Fedora 41 KDE: same as Ubuntu 22.04
        PopOs 22.04 (my OS on my main machine): UI freezes all the time.

        All tests were performed with the ‘always-malloc’ tric applied.
        On all systems younger than Ubuntu 18, the terminal always remained active with messages over the progress of the app, seems to be a UI problem on these systems.

        Am I doing something wrong?
        Is there any distro that can run tonfotos?

        Kind regards,
        Björn

          bjorn thank you very much for extensive testing and detailed report!

          I am really sorry, this information in the initial post is a bit outdated. Six month ago we switched from ubuntu 18 to 20.04 as a base for container inside which Tonfotos is built. As far as I can remember, we had to bump up node.js version to 18 and it was just not possible to run it on ubuntu 18, so we had to switch ubuntu 20. Obviously, that affected GLIBC version that is being used by runtime.

          About the same time we have updated electron version (the cross-platform UI framework Tonfotos is built on) (I don’t remember exact details, but that was probably the reason why we also needed to update node.js), and it later turned out that this more recent version has this issue on Ubuntu 22 and some other systmes. UI just gets freezed from time to time.

          Probably the solution would be to update electron.js ever further to more recent versions and the isssue would be resolved (this is just a theory). But that would mean that minimal GLIBC requirement would be raised again and we will lose even more compatibulity.

          I’m afraid, it is really hard to say what Linux versions are currently working fine. And honestly, this is really depressing. It looks like even SOME linux compatibility is completely impossible task to achive. Even a small change in your dependencies breaks everything. But you can’t be stuck to old versions of libraries since they are out of support long ago.

            Andrey

            Thank you for your reply!
            Ik will replace Fedora 41 with Kubuntu 20.04.6 LTS and report my findings.
            Generally spoken, I would guess that the majority of Linux users uses (very) recent versions of their distro’s. Upgrading is super easy. Thus, support of very old libraries is probably not very important.

            Would flatpak be a solution for this headache?
            As far as I understand, flatpak apps include all their libraries and run in a sandbox.
            The flatpak format is supported by almost every Linux version. There is an online appstore (flathub).
            By using flatpak, you would only need one format, supporting even more Linux versions (for instance, Arch based) than now. It supports auto-update, too.

              Hi again,

              On Kubuntu 20.04.6 LTS tonfotos does not start.
              In the terminal I get this:

              Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33′ not found (required by /usr/lib/tonfotos/resources/app/.webpack/main/native_modules/src/build/Release/sharp-linux-x64.node)

              Ubuntu 20.04 has GLIBC 2.31

              Is tonfotos compiled on Ubuntu 20.10?

                bjorn Is tonfotos compiled on Ubuntu 20.10?

                We use docker image amd64/ubuntu:20.04

                bjorn Thus, support of very old libraries is probably not very important.

                The issue is, some distros are lagging far behind, that even latest releases are too outdated compared to ubuntu for example. And for some reason those distros are quite popular.

                bjorn Would flatpak be a solution for this headache?

                Yes this one , or snap could potentially be a soluiton, but again, that is just a theory that requires testing. And that would also mean complete rebuild of our CI/CD system. I am afraid we will not be able to find enough time for that in our roadmap any time soon. Sorry.

                  This time, I installed tonfotos on MX Linux 23, which is based on Debian 12.
                  It installed and scanned my 35.000 images well.

                  On day two, I started to batch write people tags to general tags of the files (to have them permanently stored and be used by other apps).
                  It seems that this action (after a couple of times) makes tonfotos freeze. I had this feeling before, on Ubuntu and Debian 12.
                  The terminal gives this message: MenuCommand context_to_tag
                  After that, it produces no more output. The UI of tonfotos freezes.

                  Does this give you any clue, Andrey?

                    bjorn

                    After restart, tonfotos ran fine for a while.
                    After batch writing a tag to a couple of hundred jpg’s, the UI froze.
                    Terminal said:

                    }
                    intercepted file:///usr/lib/tonfotos/resources/app/.webpack/renderer/message_box/index.html
                    Error sending usage statistics: /app/collect Error: socket hang up
                    at connResetException (node:internal/errors:704:14)
                    at TLSSocket.socketOnEnd (node:_http_client:505:23)
                    at TLSSocket.emit (node:events:525:35)
                    at endReadableNT (node:internal/streams/readable:1358:12)
                    at process.processTicksAndRejections (node:internal/process/task_queues:83:21) {
                    code: ‘ECONNRESET’
                    }

                      Andrey

                      Now, the UI freezes directly and every time.
                      No debugging possible.
                      I think I have to give up for now.

                      Write a Reply...