How to preserve old software – with snaps

by Igor Ljubuncic on 7 May 2020

If you have been using computers for some time now, you probably have fond memories of this or that piece of software from the past, an application or a game that was fun, useful and just plain great, but which isn’t available any longer. For those who have had a chance to experience the digital boom of the 90s and early 2000s, software has gone from spartan DOS applications shared on floppy disks to large, network-connected tools that can solve complex problems, often using detailed, realistic graphics. The revolution also led to significant changes in underlying technology and formats, and almost overnight “old” tools became obsolete. And of course, there’s the steady onward march of progress, and we often have to leave software behind.

However, sometimes, there is still time and place for old applications in the modern world. This could be legacy software that your business relies on, and which may not have suitable (modern) replacements. There could also be the question of cost and complexity in replacing these legacy tools, as they are often deeply woven into workflows, with delicate setups and intricate workarounds. As the old adage goes: if it ain’t broken, don’t touch it.

Old applications may not necessarily solve or address every contemporary use case, but they can be of real, practical value. Or you may want to use them out of pure nostalgia, like perhaps the old games. Indeed, there are ways to preserve ancient content, even if it’s no longer available in standard online archives. Leave no (software) behind – with snaps!

Software maintenance in Linux

While there has been a brisk revival of old software, especially games, through stores like Steam and GOG and different compatibility layers that enable new systems to run legacy code, lots of old applications fall under the radar. In Linux, the preservation of old software is perhaps even more challenging than in other operating systems.

Take Ubuntu as an example. Each release comes with its own archives, providing specific versions of tools and their library dependencies. Usually, you cannot freely mix packages across multiple archives. For instance, packages provided in Ubuntu 16.04 may not necessarily be compatible with those in Ubuntu 19.10, and vice versa. Often, applications are compiled against specific versions of libraries. If those libraries become unavailable, applications that depend on them will no longer run.

The reasons for the deprecation or removal of older libraries and their versions stem from various, legitimate operational reasons – security, features, termination of support by the original developer or provider. Quite often, Linux distribution maintainers will remove packages from the archives if they are seen as unmaintained upstream (by their original owners or the community). However, that does not necessarily mean that these “unmaintained” applications are no longer of value, or that they do not work. It practically means that they may not be updated. In some cases, especially when there are no security risks involved, this is a perfectly acceptable usage scenario.

For those who require stability and longevity, there are of course long-term support releases like Ubuntu 18.04 or 20.04 – but even here, eventually there is an end to the availability of certain applications and libraries.

Snaps to the rescue!

One way to work around the library dependency conundrum in Linux is – to break it. Self-contained application formats provide a solution to the issue. This way, programs and all their necessary components can be bundled into a single archive, and used reliably even if the original sources and online repositories may have disappeared, or stopped providing them. Indeed, snaps allow applications to run independently of the underlying operating system. As long as the system can run the snapd service, snaps will run and behave consistently, including not only various versions of Ubuntu, but also across other distributions. When it comes to snaps, this list extends to more than 40 distributions.

The deprecation of Python 2 is a good real-life example. The Python Software Foundation has formally set the Python 2 EOL date to January 2020, which means newer Linux systems no longer ship with it. However, it is still available in Ubuntu 18.04, and you can build applications that rely on it as snaps. This allows you to use Python 2 software on Ubuntu 20.04, as well as other distributions.

Similarly, most distributions no longer provide the 32-bit images (for a while now). However, snaps support six hardware architectures, including i386, so you can build snaps that target 32-bit systems. Again, this provides you with additional flexibility in how you create and use software.

Self-preservation society

So you may be wondering, all right, snaps can preserve old software. How old? Well, how about Mosaic old?

NCSA Mosaic was one of the first graphical Web browsers, with support for protocols like NNTP, FTP and Gopher (possibly unrelated to the Caddyshack gopher). It could display images inline with text, and it was a technological breakthrough of immense proportions at the time. Released in 1992, it was officially discontinued in early 1997.

If you want to try it, you can. It’s available as a snap in the Snap Store.

KompoZer is another example. A fork of the Composer WYSIWYG HTML editor, it was last available for Ubuntu users in Precise Pangolin. Since, it has become progressively more difficult to find the KompoZer packages and install them in modern versions of Linux. But if you have use for this kind of software, then it is available as a snap, which guarantees it will continue working even as the world inexorably marches forward.

Summary

Often, old software goes into the great digital beyond, to join many of its kind that had paved the path to the modern technological landscape we have today. But it does not have to be that way.

Snaps provide an elegant way to preserve applications, both important legacy tools that have suitable replacements, as well as valuable, significant pieces of history that should not be forgotten or lost. In the same way it has become easier to play ancient games on new computers and operating systems, snaps can help you enjoy old applications in a safe way, without having to worry they will disappear from distribution archives or become incompatible with the underlying system libraries.

If you have any comments or ideas, or you’d perhaps like to suggest some old applications that should be snapped and saved from extinction, please join our forum and let us know. Or you could make those snaps yourself, and join the vibrant community of developers in the Snap Store!

Photo by Aaron Greenwood on Unsplash.

Newsletter Signup

Related posts

Snap Performance Skunk Works – Ensuring speed and consistency for snaps

Snaps are used on desktop machines, servers and IoT devices. However, it’s the first group that draws the most attention and scrutiny. Due to the graphic nature of desktop applications, users are often more attuned to potential problems and issues that may arise in the desktop space than with command-line tools or software running in […]

How to cache snap downloads and save bandwidth

For many people, fast broadband connection and unlimited data are a reality. For others, they are not. If you have several Linux hosts in your (home) environment, and you’re using snaps, each of these systems will separately communicate with the Snap Store and periodically download necessary updates. This can be costly in terms of inbound […]

Top 10 apps for a fresh Linux install in 2021

Are you struggling with too much lag? Is it time for a spring clean and a fresh Linux install? Ready to upgrade to Focal Fossa (LTS) or Hirsute Hippo? Whatever situation you are in, get started quickly with some of the most popular apps you need for a fresh Linux install. Here are all the […]