I’m experimenting with a new way of creating AppImages that embeds the GLibC and all the application dependencies except for the graphics stack (x11, libgl, libegl, and others). At runtime, the application will load some libs from the system and others from the bundle. Such libraries are linked to glibc, therefore they may require different versions of glic. Luckily, GLibC has good backward compatibility therefore using the latest binary does the job.
How to switch the ld.so used by a binary at runtime
PRoot support on appimage-builder
PRoot allows running applications in a fake root fs without root permissions making it ideal to build portable bundles.
appimage-buildernow supports building AppImages using this approach. In this post, you will find how it works and how to use it.
Introducing AppImage Builder
Using Docker to produce AppImages
In order to create an AppImage compatible with a wide range of GNU/Linux systems the developer must choose as build base the oldest LTS system available in the market (which is Centos 6 at the time of writing this post). Why?
Introducing AppImage Services
The AppImage project seeks to introduce into the GNU/Linux ecosystem to the best aspects of a MacOS app installation experience, while avoiding its drawbacks. But it faces the fact that there are many GNU/Linux Desktop Environments. Each one with different goal and opinion on how applications should be handled. Trying to satisfy all of their requirements and restrictions seems to be a nearly impossible task.
Example QtWidgetsApplication packed as AppImage using Conan.io
In a previous post was mentioned how well Conan.io and AppImage could work in order to ease the production and distribution of your software. In this post, we show a minimal example of how to pack a Qt Widgets Application as an AppImage using conan.io as a dependencies management system.
What’s Conan? it’s a decentralized package manager. That allows us to have binaries ready to be used to create AppImages.
Why do you need such special binaries? In order to create an application that could be run on almost any GNU/Linux distribution you will need to build your application and it’s dependencies on a very old base system (by example Centos 6). So you will have to back-port every dependency to such system. Using our conan.io repository you can access to a wide range of package recipes that are ready to be built/used on almost any distribution. Such packages are available on bintray and the recipes are on github You will find them as part of the appimage-conan-community which is a group for those using this technology stack.
AppImage dependencies management
Currently the process of producing AppImages is hindered by the burden of making the whole dependency tree relocatable and compatible at binary level with older software. A crowd-sourced repository of binaries could be used to share and reduce this work. Several binaries repositories technologies were analyzed finding Conan as the best match for the AppImage project needs. It address the same issues with binaries, opens a wide range of options for future integration between both projects and also improvements for the AppImage project.
Akademy 2018 Impressions
Akademy is, according to its web page, the annual world summit of KDE, one of the largest Free Software communities in the world. I would add to that is a great opportunity to meet really creative tech people, to learn and to get more involved into the Free Software world. This was my first time attending to it, and probably not the last one. I attended as a plasma extensions developer, as Nitrux developer and also as an AppImage Project contributor.
This is the very first post of this blog. I’m a software developer from Cuba who had spend his last 7 years working mainly on GNU/Linux applications development. So I decided to start this blog in order to share my experiences on the field.