Category: Software

Running Plasma Mobile on an i.MX 6 test board

On the road to a working mobile phone, doing some initial evaluation and testing of the current state of existing user interfaces and frameworks is key, to evaluate what can readily serve as building blocks and what needs work. Last weekend I did an initial experiment in getting Plasma Mobile working on our i.MX 6 based test development board, using a 4.13.5 Linux kernel and stock Debian Testing. Initially, I encountered a few problems with KWin not wanting to start a Wayland compositor due to not recognizing the device as OpenGL ES 2.0 capable and also not finding a few needed OpenGL extensions. After some digging and with help from Plasma Mobile developer Bhushan Shah we tracked this issue down to a bug in libepoxy that was solved a long time ago. Unfortunately, Debian’s packaged version of this library was very old, so I upgraded it to a newer version manually (and we will get it updated in Debian soon). This resulted in a working Plasma Shell on the device.

The next step was compiling and installing the Plasma Mobile components from current Git master repository and running the mobile shell. This initially led to graphical glitches in the display, which were caused by KWin running as root (which you should never do as a user, but I did not think this would also cause major issues just for testing whether the shell works or not). After switching to a regular user for running the KWin wayland compositor and removing a dead call to upstart from the plasma-phone launch script, I could start the Plasma Mobile/Phone shell with the kwin_wayland --drm --xwayland plasma-phone command.

Here are the screenshots you have probably been waiting for the whole time:

Plasma Mobile on i.MX 6 main view
Plasma Mobile on i.mx6 running the Discover application center
Plasma Mobile on i.mx6 App drawer

Of course this is not a final product, by any stretch of the imagination. It’s simply a test to see that it runs. There is a lot to do in terms of performance improvements, as Plasma Mobile still runs pretty slow on this kind of hardware (which could be less of a problem in case we use the i.MX 8 platform). Also, these initial tests were done using recent—but not the most up to date—versions of Plasma, KDE Framework and Qt (KWin/Plasma 5.10.5, KF 5.37.0, Qt 5.9.1), while a lot of performance improvements and bug fixes went into the latest versions. So it is definitely worth switching as soon as possible to tracking KDE’s latest development releases to benefit early from improvements done in the whole stack.

In general, Plasma Mobile already provides a usable (albeit alpha-quality) mobile interface today. The Qt Quick/QML based Kirigami component library and interface guidelines also provide a nice framework for mobile application developers, that have been tested on Android as well, and works nicely on and with the Plasma Mobile shell.

We are looking forward to seeing what we can do with the Plasma Mobile shell in future. Many thanks to Bhushan and the KDE community for helping with some issues encountered when making Plasma work on the i.MX 6, and their plans on making a real Plasma Mobile alpha release soon. If you are interested in the Plasma Mobile roadmap, this recent post from Sebastian Kügler might be interesting for you.

Initial Touch and Web Browsing experiments on Librem 5 prototyping boards

When it comes to prototyping the Librem 5, we are working hard and making progress on several sides. As you have seen in yesterday’s testing update blog post, we are working on development hardware in order to start getting software development groundwork done. Today, I’m sharing the results of a quick experiment with web and touch on a prototype board. Read more

A new boot splash for PureOS

A quick update about PureOS… from the design team this time! 😉

For the new version of PureOS (codenamed “Prometheus”), I am working with the developers to make a very smooth and pleasant user experience when installing and launching the system. We want to make sure that PureOS is not only secure, but also a beautiful and enjoyable experience, designed for everyone. No exceptions!

So, I am currently working hard on polishing the visuals. The video below shows an example of the animation that will now take place at boot time in PureOS.

Every new Librem ordered with PureOS pre-installed should ship with this beautiful PureOS update in the coming weeks (we’re working hard to make the PureOS release on time for factory installs!) If you already are using PureOS, a software update will also arrive soon for you.

If you like it so much that you can’t wait for it to be released with PureOS, or if you want to customize its look to make it yours, you can download the source files here.

Your own music studio with JACK, Ardour and Yoshimi

Last week, after flashing coreboot on my Librem 13 (as a beta tester of the new coreboot install script), I came across a few problems with my heavily tweaked PureOS install, so I decided I would do a full, fresh install of PureOS 3.0 beta so my environment would be much closer to what a new user would expect.

While re-installing all my creative environment, I decided that I would do a quick tutorial on installing and using Jack as it is not straight forward and that there are not so many tutorials about it on the Internet.

What is JACK?

JACK stands for “JACK Audio Connection Kit”. It is a free software that lets you handle audio input and output between different applications.

You can see it as a set of audio jacks that you will be able  to plug between different programs.

For example, you can use it to connect a software synthezizer (Yoshimi, ZynAddSubFX) to a multitrack sequencer (Ardour, LMMS).
You can use it to connect an audio editing software (Audacity) to a video editing software (Blender).

Many applications have Jack support. Here is a list from the JACK’s website.

As an example for this tutorial, I will show you how to use Yoshimi with Ardour.

Install the applications

First of all, we need to install all the required applications

sudo apt install qjackctl ardour yoshimi

Enable real time scheduling

Real time scheduling is a feature of all Linux based operating systems that enables an application to meet timing deadlines more reliably. It is also considered to be a potential source of system lock up if your hardware resources are not sufficient so, most of the time, it is not enabled by default.

As mentioned on the JACK’s website, JACK requires real time scheduling privileges for reliable, dropout-free operation.

There is a well detailed tutorial from the JACK’s team that describes how to enable real time scheduling on your system. I will go through the main steps here. It works for me on PureOS but should also work without problem on many other GNU/Linux distributions.

First of all, create a group called “realtime” and add your user to this group (replace USERNAME with your current login) :

sudo groupadd realtime
sudo usermod -a -G realtime USERNAME

You can check that “realtime” is now part of the user’s groups by running the following command :


Also, make sure that the user is part of the audio group. If not, just add it :

sudo usermod -a -G audio USERNAME

On PureOS (and Debian), you should have a folder called /etc/security/limits.d. If so, just create and edit the file /etc/security/limits.d/99-realtime.conf with your favorite editor. (If you don’t see this folder, you need to edit /etc/security/limits.conf).

Add the following lines and save the file :

@realtime   -  rtprio     99
@realtime   -  memlock    unlimited

You need to logout and login again for the changes to take effect.

WARNING : You should only add new or existing users to the “realtime” group only if an application that they use (like JACK) requires it . By doing so, you give them pretty high privileges to interact with the process priorities, and this may affect the whole usability of the computer.


Before being able to connect anything with JACK, we need to set it up and start its deamon. For that matter, we will use QJackCtl which is a graphical application that controls JACK’s inputs and ouputs.

We will first make sure that JACK is setup correctly. Press the “Setup…” button.

I am not an expert with audio hardware and configurations and this setup is working perfectly on my Librem :

  • Driver: alsa
  • Realtime : yes
  • Interface : hw:PCH
  • Sample Rate : 44100
  • Frames/Period : 128
  • Periods/Buffer : 2



Save your settings and, on the main QJackCtl controls window, press the “Start” button. After a few seconds, you should see the “Connections” window popping up. This is where all the connections take place.

Connect Yoshimi to Ardour

Now, we are ready to connect our virtual jacks. It is time to open Ardour and create a new session. You should now see a lot more connections in the JACK’s connections window. It shows how Ardour interacts with the system’s audio inputs and outputs.

Let’s add a new track to Ardour. Click the menu “Track”->”Add Track, Bus or VCA…”. Call your new track “Drums” and set it as stereo.

Now you see 2 more Ardour inputs in the JACK’s connections window. They show the name of the audio track that we just created and they are currently connected to the default system’s capture device (the microphone). That is is not what we want so we will disconnect them.

Right click on one of them (Drums/audio_in 1) and chose “Disconnect”. It will disconnect the audio capture device. We will now connect our track to Yoshimi.

Open Yoshimi and wait for it to be fully loaded. You should now see the Yoshimi’s output appear on the JACK’s connections window. In order to connect the Yoshimi’s output to the Ardour’s input, just drag one on top of the other (make sure to respect the vertical order).


You are now ready to enjoy your fully operational free software powered professional music studio! 🙂

Please, feel free to comment this post or ask any question in our forums.

Have fun! 😉

Releasing the beta of PureOS 3

After our alpha release in November, we are today releasing the beta for PureOS 3.0, which we intend to release as a final release in time for our upcoming new laptop batch shipment (more news on that soon).

As PureOS uses a rolling release model, software all across the stack continued to receive updates since our first alpha some months ago, even though the core of our work has been to improve and deploy new infrastructure to support efficient development of this operating system and to make the PureOS experience more pleasant for users, too. The PureOS infrastructure is now better at exposing migration/update issues, which means that we iron out broken or missing package dependencies more quickly (with the goal of preventing them from ever being encountered by users, although such occurrences are already rare). Building this infrastructure for PureOS is some very ambitious—and often invisible—work that we are accomplishing as the foundation for all PureOS development.

We are also in the final stages of preparing proper developer documentation, closely modeled on Debian’s contributors documentation and procedures, but pointing to the right bits and pieces when it comes to PureOS.

FSF endorsement is work in progress: we are working with the FSF and addressing any concerns or requests they may have. As per the FSF’s requests:

  • The new PureOS website is now fully separate and works with LibreJS.
  • Iceweasel/Firefox was removed from the archive (its presence there was actually due to a repository synchronization bug) and we modified the add-ons system to avoid the possibility of installing non-free add-ons by mistake. That said, this is one of the reasons why PureBrowser exists, and PureBrowser will continue to be the default. The forced removal of Firefox/Iceweasel caused some trouble with the PureOS package repositories archive but this will be fixed before the final release.
  • TorBrowser is now torbrowser-launcher, a package that downloads and installs the official Tor browser with updates being applied as soon as the Tor project publishes them.

On the security front:

  • A Wayland-based GNOME 3 experience remains what we ship by default.
  • We have started preparing our Linux kernel to be based on the grsecurity kernel. This is available as a package in the beta’s repositories but is not enabled by default, as we consider it requires more testing (you can help!) so we can use it as the default Linux kernel in the future (for PureOS 3.0’s final release, hopefully!)… so feel free to install and try it out (don’t forget to install paxctld as well)! This will be a huge step forward in terms of security. While most regular GNU/Linux distributions are more secure and privacy-respecting than proprietary OSes, having the grsecurity patchset in PureOS’ Linux kernel by default will bring PureOS far above the norm in terms of desktop GNU/Linux security practices.
  • We look forward to integrating flatpak in the future to benefit from its sandboxing capabilities

As you can see, we’re making some nice progress and PureOS has great plans ahead to achieve a great user experience that balances security and usability. This is quite a bit better than running OSes that work against you or that strip you of control over the applications layer!

RAW footage with Magic Lantern & MLRawViewer

A picture of my post production studio.

Software freedom is amazing! Used with the right hardware, it becomes limitless. Being part of the Purism team as well as the Ethic Cinema project, makes me do a lot of research in term of freedom in visual creations.

Everyday, I realize a bit more, how powerful my free software based studio is when it comes to handling a professional film making workflow. And of course, as a film maker coming from the old school of proprietary technologies, I am so glad to know that now, I am in control.

Getting the best out of your video footage

On a previews post, talking about A/V formats, I said that I didn’t know any camera that lets you be in full control of your footage. Especially if you are on a budget. Most of the time, you will have to deal with footage in a compressed, proprietary format. This can be a problem in a post production workflow because if you re-encode your footage based on an already compressed one, it will start to degrade. If you chose to keep your original footage, you will have to deal with the limitations that come from the proprietary nature of the formats.

This may be true but there is a way to bypass the problem.

RAW files

Thankfully the amazing people from Magic Lantern came to the rescue!

Magic Lantern is a video camera firmware that is released under the GPL license and runs on most Canon DSLRs (Are there some equivalents for other cameras ?). This firmware extends the functionality of the camera and most of all, lets you record your footage as RAW files.

RAW files are brute data coming straight from the sensor. It is like a film negative that would have had no treatment yet.

Based on this RAW file, we are free to export our original footage to the format that we wish. This step is what would happen in the camera in order to generate the footage. The camera would apply your color presets to the RAW data coming from the sensor end encode it to a usable video format. Usually an H.264 format within a MOV container.

With Magic Lantern we have access to the RAW file, so we are in control.

Handling RAW files

Once the RAW file is stored in the computer, it is time to generate our original footage.

MLRawViewer is an amazing free software, made in python and based on FFmpeg. It lets you preview, color grade and encode your RAW footage.

In its latests version (1.4), MLRawViewer only encodes as Apple ProRes (.mov) or Adobe Digital Negative (.dng) formats. Unfortunately, both formats are proprietary, so as part of the Ethic Cinema project, we have decided to contribute to MLRawViewer. We have added the free lossless Huffyuv (.mkv) format to the list as well as the ability to rotate the encoded video. We sometimes film with the camera upside-down when doing camera movements close to the ground with our steadycam, so rotating our footage during this process is very useful.

While our changes are not merged into the original project, you can test it from our repository.

Having the footage being encoded from RAW to a lossless format makes it keep its full quality (which wouldn’t be the case when using the built in H.264 compressed format). Gradients and details are perfectly preserved. It also gives us the ability to use the highest dynamic range available from the camera, or to use a custom LUT (picture style) that would suit our needs.

Please, note that this step is not to be confused with the actual color grading process that takes place at the end of the post production, when the editing is complete. The goal here, is to prepare the footage to allow as much flexibility as possible during the color grading phase. Usually, we chose a very flat picture style at this stage, in order to make sure that we keep as much details as possible from dark to bright.

All in all, the footage we get through this process is at the best possible quality and very close to what one could get from a very high end cinema camera.

This was the missing bit of my workflow. I have now achieved full control and freedom over the whole post production workflow.

Installing MLRawViewer

Note, I have updated this part on 07/04/2017 after noticing some problems with different configurations running python3 along with python2

I plan to make an Appimage build of MLRawViewer, but it is not done yet, so you will have to compile it yourself.

Don’t worry, it is not very difficult and here are the instructions for PureOS and other Debian based systems (It should be very similar on others systems) :

First of all, you need to install git and python, along with pip. (I installed pyaudio with apt because for some reason it failed installing with pip).

Note that you need to install version 2.7 of python as version 3 is not supported by MLRawViewer.

sudo apt install git python2.7 python2.7-dev python-pip python-pyaudio libglfw3-wayland
# Use ‘libglfw3’ if you are not on wayland

Then, you need to install the required dependencies making sure that you use the right versions (which may not be the latests)

pip2 install scandir
pip2 install -I PyOpenGL==3.0.2
pip2 install numpy==1.9.1
pip2 install glfw
pip2 install Pillow==2.1.0

Then, you need to get the source code of MLrawViewer from the Ethic Cinema repository for the updates

git clone

or from the original repository

git clone

It is now time to build the application.

cd mlrawviewer
python2 build
cp build/lib.linux-x86_64-2.7/

And run it


Don’t hesitate to ask any question in the forums if you have any trouble  or if you wish me to post any tutorial related to multimedia manipulation with free software. You can use the PureOS area in the forums. I am very happy to help!


What’s next?

Well, how cool would it be to shoot with an Axiom camera ? … along with the new Librem 15 v3 !



Bits about PureOS

There are were some questions floating around our community regarding PureOS compared to other distros, and I feel it is time to address them all in one go.

PureOS compared to other distros

Do PureOS and Tails have the same goals?

Yes and no. We both want to make secure, private and anonymous OSes but we approach the problem differently:

  • Tails has longer development cycles.
  • Tails is more focused on pure anonymity, privacy and security, not tailoring towards average end-users (by “average” we mean “average computer user” and not “average GNU/Linux user”). While Tails is not as complicated to use as Qubes, there still is very little attention paid to user experience.
  • Tails is a system that you don’t install onto a hard drive (last time I talked to Tails developers, they said they were writing code that even prevents you from installing it onto the hard drive).

On other hand, PureOS comes preinstalled on Purism’s devices and takes all security/privacy/anonymity aspect tailored towards a broader set of end-users.

  • PureOS will not take security measures that would, for example, make 99% of the web browsing experience almost impossible (Tails also doesn’t do this, but this mention is just an example to reflect our philosophy).
  • PureOS aims to be easy to switch from Windows/Mac as well for any other OS, while increasing security and privacy in great amounts compared to the two most popular desktop OSes.
  • PureOS doesn’t require any account, doesn’t send any feedback/telemetry to Purism (or any other company) and doesn’t spam with add-ons.
  • The combination is therefore meant to be easy to use (and pleasant to the eye) while being a very big step forwards in terms of freedom, privacy, security and anonymity.

SubgraphOS is an example of an OS that is more aligned with PureOS’ ideas.

What are the differences between Debian and PureOS?

Hopefully I don’t need to explain the long standing giant Debian. PureOS will tend to have least possible amount of deltas compared to Debian and it will try to forward upstream (and to Debian) all changes we make that make sense for wider community (Matthias and myself are also Debian Developers and we understand the importance of this). Said that, we have some differences: PureOS hosts only Free software – while Debian is officially only main, it does host and allows an option of having non-free software. PureOS will have more frequent changes and for now it will not have an real stable release in Debian sense (we consider PureOS stable for everyday usage as most of users experience the same with Debian Testing). PureOS already defaults to Wayland as default while Debian will still stay with X for at least one release. For final PureOS 3.0 release, the plan is also to switch from Debian Installer to Calamares and also PureOS will have kernel with grsecurity enabled (and of course our own configuration).

What package formats is PureOS going to use?

PureOS is based on Debian and thus we use the famous deb format for core system packages. Besides that, our plan is to have Flatpak as a convenient and secure complement to deb packages in the future. Flatpak is pretty advanced, is gaining momentum among application makers, and has a lively community.

Where are PureOS sources (to code)?

They are at but the easiest way to get any code is to just do:

apt source <packagename>

How to upgrade to the latest stable version?

PureOS is in essence a rolling release and if you keep it up-to-date you’re already at the latest version. We release point releases (like now with the upcoming PureOS 3.0) to have better testing of features as well as having an image for our OEM ISO. There is no need to download every ISO we release if you update frequently, but it helps us with testing.

Why can’t I search apps in GNOME Software and why doesn’t installation work for some packages?

GNOME Software requires Appstream metadata to work properly, and we are in the process of implementing that machine. It will soon be ready, probably by our next “beta” release of PureOS 3.

The installation issue comes out because of migrations issues. Short explanation: our packages get synced from Debian into our archive called “landing”, there from landing they migrate to “green” which is what you have in your sources.list. So we basically have an additional testing step during this migration, but as those parts are new in our archive they sometimes might get broken. We are improving this daily so bear in mind that all can be resolved in your next update.

Why does PureOS default to GNOME?

We consider GNOME the most technically advanced and polished Desktop Environment out there. It also has the best support for Wayland and touchscreen devices, which is important for PureOS’ path. Those who need more features or a different look & feel can either go to or install any other DE they need (you’re always just an “apt install” away from anything you want).

How can I contribute?

Talking about PureOS, sharing to your and wider community, sending bug reports, code, art and coffee to developers, all helps.

Android’s Secret Backdoor, and How Purism’s Business Model Avoids This Type of Threat

Security contractors recently discovered preinstalled software in some Android phones that monitors where users go, whom they talk to and what they write in text messages. Emilio Morenatti/Associated Press

Today we learned once more why utilizing pure free software where the source code is available is critical to protect users’ rights to privacy, security, freedom, and anonymity.

The New York Times points out that this latest security breach “shows how companies throughout the technology supply chain can compromise privacy, with or without the knowledge of manufacturers or customers.”

Let’s examine the problem and see what can be done about it. It’s not too late to stand up for your rights.

The Fundamental Problem

All phones and tablets on the market today suffer from the same problem: the code that operates those devices are a mystery to the users. In this specific case Google’s Android, but the same problem exists with Apple devices and Windows devices, where the operating system, software-updated firmware, and most software that runs on those devices do not have the source code available to verify that there are no backdoors sending your private data to unwanted third parties.

Purism Competitive Privacy Matrix

What this means is there is absolutely no way, for a user of Android, iOS, OSX, Windows, or any operating system that does not release all the source code, to guarantee he/she is not being illegally spied upon for nefarious reasons, corporate surveillance, government spying, and/or private data mining.

The tracking built into mobile devices is at every level imaginable. We need to create a better, digital rights respecting future for computing.

The Future of Computing

If we, as users, continue to morally and financially support Android, iOS, OSX, Windows or any other operating system that strip away the digital rights of users, we continue to advance a future where:

  • users are controlled for profit;
  • private data is mined for advertising revenue;
  • governments spy on people;
  • corporations capitalize on every user interaction;
  • security breaches involve staggering amounts of personal data, with enormous consequences for individuals—even worse than what we’ve been seeing in recent years.

Every time you purchase a device from hardware companies that pre-install Android, iOS, OSX, Windows, and other nonfree operating systems, you are contributing to the erosion of your rights. Buying an HTC device benefits HTC, Google, the carrier, and all software companies that preinstall their privacy-stripping binaries. Similarly, buying Apple benefits Apple, the carrier, and all software apps preinstalled or even later installed.

Current technology purchasing decisions,
Current technology purchasing decisions. Can you smell the smoke?

The Solution

  1. Use a free software operating system, where the source code is released.
  2. Use hardware that allows you to run a completely freed operating system, where there is no mystery binaries, no private data delivered anywhere, and most importantly that you control.
  3. Support companies and organizations like Purism, and know that every penny of a purchase goes to benefit the future of computing and the digital rights for users. Make informed purchasing decisions and support hardware manufacturers that push Free Software’s agenda all the way through the supply chain.

The Upcoming Purism Phone and services infrastructure

Subscribe to our newsletter (simply send an email to to subscribe automatically) or follow us (see website footer for social links), then you will be notified when Purism launches the first freedom, security, and privacy respecting phone.

Digital media transcoding – Part 3 – Free Formats in Post Production

This is the third and last part of my articles about media manipulation with free software. Here is part 1, and here is part 2.


Working with video files all day long makes me realize that formats are everywhere and the need for me to be able to freely manipulate them is constant. It is why I think that in term of multimedia creation and publishing, free formats are as important as free software. Free software will always more easily support free formats anyway. In another hand proprietary software may decide to drop support for any free or proprietary formats as they wish.

In that regard, my post production workflow tend to rely on free formats as much as possible. In the world of freedom, we are very lucky to have top quality free formats for multimedia production and I would like to share with you the main formats that are part of my post production workflow.

Note that this is my personal workflow, there may be better workflows, better formats, especially when working on sophisticated projects with a big team. This is just a basic reference that works for most of my projects.


The format you will need to deal with, when capturing video footage will depend on the camera you use. Most commercial cameras will record using proprietary formats and as of today, I don’t know any camera capable of recording using free formats. The Axiom by Apertus is a camera based on free hardware design but it is still under development and I have never had the chance to test one.
Usually, I have no control over this part but it is fine. The most important here is that my footage gets the quality that I expect.

I just make sure that the formats generated by the camera will be readable by my free software. Anyway, FFmpeg can read so many formats…


At this point, I may choose to keep my footage as it is or chose to convert it to a free format for storage purpose. This is very useful when capturing with a proprietary format so I get full control over my footage straight away.

The storing format should be lossless, which means that there will be no data loss during the conversion. This is the top quality footage that my final rendering should be based on.

When performing this task, I use the following :

  • Matroska (MKV) format – Huffyuv (video) / FLAC (audio)
  • Matroska (MKV) format – FFv1 (video) / FLAC (audio)

As both formats are lossless, there should not be any quality issue however while FFv1 generates a smaller file, it is, in my experience, slower when decoding and may affect the comfort of my workflow at some point. Usually, I prefer using Huffyuv.


When editing, the use of proxies can make your workflow much faster by requiring a smaller amount of hardware resources. A proxy is a low resolution and light weight version of the original footage.

Proxy files are very temporary and the final rendering don’t depend on them. In that regard, you may use the format that is the most adapted to you hardware speed. Kdenlive has an integrated proxy engine that lets you choose between MPEG1 and Xvid by default. These are not fully free so I would suggest using the following on a 640px wide output:

  • WebM format – VP8 (video) / Vorbis (audio)
  • Ogg format – Theora (video) / Vorbis (audio)

I have always found that VP8 decodes faster and feels lighter than Theora so my choice goes for VP8 here.

Compositing and color grading

I usually do all my editing with Kdenlive. When I need to do some advanced compositing, and color grading, I use Blender.

At this stage, I only care about the picture and put the audio aside. I generate image sequences based on my top quality footage and load them into Blender.

For color grading and full picture visual effects :

  • PNG

For animation compositing :

  • PNG with transparent background
  • Multi-layered OpenEXR (Very useful to avoid having too many rendered files)

There is one free image format that is still very young but very promising. It is called FLIF. It is a lossless image format that has a better quality for a smaller file size than PNG. At the moment of writing this post, it is only implemented in ImageMagick but I hope it will be adopted by many more free software in the future.

Audio editing

To be honest, I am not an expert in audio editing and my skills in this area are pretty basic. I mainly use 2 formats to manipulate audio files :

  • Vorbis (compressed for quick preview and editing)
  • FLAC (lossless for full quality, final rendering)


What would be creative freedom without non-restrictive sharing ?

As of today, the most common format on the web is, by far, MP4 (H264). It is a proprietary format and it is quite difficult to avoid. I don’t want to impose any restriction to my audience so I sometimes use H.264 when I have no other alternative, but in any case, I always use the following free formats that are compatible with many web browsers, many platforms and are perfect for streaming purpose :

  • WebM format – VP8 (video) / Vorbis (audio)
  • Ogg format – Theora (video) / Vorbis (audio)

Ultra-high definition (4k)

Producing 4K videos is also possible with a free formats workflow. More and more cameras are able to shoot in 4k and the Librem15 will give you the horse power to comfortably work with this kind of big resources. The workflow that I have presented here is adapted to any resolution. Just make sure that you do your final rendering with a format that is able to handle the highest resolutions :

  • WebM format – VP9 (video) / Vorbis (audio)


If you need more information about free formats, you may check the full list on Wikipedia.


I hope this series on media files manipulation has been useful to you and as the Blender Foundation would say, “Creative freedom starts here!”

Happy freedom! 🙂



Purism Devlog #3

Welcome to new devlog post. Many exciting news here, so lets dive into it step by step.

New infrastructure

In past we had many issues with failing repositories, an outdated archive, expired keys, sources changing too often… this is why we have now moved to new servers, with control from the ground up, and started building the new PureOS infrastructure (the whole Purism infrastructure also moved to new server). We are still improving and tweaking everything on a daily basis, but the foundation is there. New infrastructure is now mandated by DAK (Debian Archive Kit) and Laniakea (which is developed by Matthias Klumpp, aiming to make creating and maintaining Debian derivates easier for all).

Bug tracker

One of the most important aspects of every distribution is its users reporting bugs and submitting ideas. Now you can simply go to and report any issues as well as submit ideas. In the near future we plan to tweak the infra in such way that it becomes publicly visible even without registering an account (we spent our time building everything, so we haven’t been tweaking it yet).

The PureOS bug tracker
Example of what the PureOS bug tracker looks like

Code hosting

While our code is still spread out on GitHub and we’ll be mirroring it to our infrastructure in the beginning, we plan to eventually host all our work on our infrastructure by default. After all, our infrastructure is entirely Free software based (code auditable, anyone can contribute, etc.). The code will be in place at (only a small, non-updated portion lies there at the moment).

Wiki pages

A good OS needs good documentation pages. Good documentation needs a good community. We started building the foundation for that as well, and now need your help. Our wiki effort will be lead by our main support person, Mladen Pejakovic. Either contact him or send mails that you want to contribute to the wiki foundation of PureOS, to or The wiki is located at You can also fire up your favorite IRC client (Polari, Hexchat or some web IRC client), connect to freenode ( and join our #purism channel to chat with us. We need our community to pull this all out, as the task we are setting needs combined effort of an entire community that cares.

PureOS 3.0 alpha release — codename “Prometheus”


With a new infrastructure comes new tasks, and the first and obvious is to improve our OS. We chose to start from ground zero and progress on it properly. We call this release an “alpha” as it is missing a few things (and we want people to test it) but its overall stability should actually be slightly higher compared to previous releases. Also, a great feature it gained is that now our images are “live”, meaning you can run them without installing on your drive! The download link is located at the usual place.

For those who don’t want try the new installation (although we would appreciate that, even if done in GNOME Boxes or other virtualization tools you use) and just want to update to it, here is what should be done in terminal:

sudo dpkg -i pureos-archive-keyring_2016.09_all.deb
sudo > /etc/apt/sources.list
sudo echo "deb green main" >> /etc/apt/sources.list
sudo apt install pureos-minimal pureos-standard pureos-desktop
sudo apt update && sudo apt dist-upgrade 

And voila, you’re there!

Now lets talk what is in there, what is missing and what can you do.

PureOS 3.0 Prometheus aims to be the best release we ever made, and we want it to be the release with the most community engagement ever (this is why we deployed our awesome now infrastructure foundation above!)

With that in mind, we want to see of course your code and ideas of what do you want to see in the default installation, but we also want artwork! A lot of artwork. We are opening a contest for wallpapers. The rules are simple: create a piece of artwork (it can even be an old photo you took at some point in time) that inspires you, reminds you of freedom and/or has the Prometheus idea floating around, combined with some Free license (GPLv3 for example). Prometheus gave to humans fire (a.k.a. knowledge) which made humans free. We are giving you the OS which we hope will empower you to make your dreams true and form the best community around it. Also, if anyone feels inspired and wants to challenge their skills, please do a plymouth theme (here is inspiration).

GNOME Software is in there but we still need to build our Appstream machine, so it’s currently missing data (the Synaptic package manager is not ported to Wayland yet, so the good old terminal will be your friend for next couple of days—or just pick “GNOME on Xorg” at the login screen 🙂 )

Wayland logo

PureOS 3.0 alpha will be shipping with Wayland by default (you can simply choose your session on login screen by pressing the gear button and choosing which one you want). Wayland is such a huge step forward in many ways, to provide a beautiful tearing-free desktop experience but also to build future security. To get why this is important, watch this video. We are proud to push this last bit forward as we feel comfortable that our hardware will play nicely with GNOME and Wayland. Notice there are some quirks with Wayland (some missing legacy icons, global menu loading 15-30 seconds before it becomes usable, some pointer issues) but most of them we will clear out in the near future while bravely going towards the final release of PureOS 3.0.

Here are some known issues (nothing that affects stability):

  • The default wallpaper is still the old one, and while we have new artwork done, we still didn’t integrate it as we want your wallpapers in as well.
  • You will miss our patched kernel which provides somewhat better touchpad functionality compared to stock kernel, but we will push that in soon: you will be able to find it in a package update; we hope to eventually provide fully automated builds that you can test early.
  • About the touchpad, we plan one more quick snapshot in coming days to fix few things and, after that, allow one developer to focus full-time on making it work better.

FSF distribution endorsement

This is something PureOS is aiming for. What does this endorsement mean? It means that we provide and support only Free software by GNU standards. While PureOS is not meant only for our hardware, we must advise people who will try it on other hardware that you may encounter some issues, for example WiFi might not work if your hardware requires a proprietary firmware. Also, in the future we will optimize the default image towards our hardware (so AMD and nVidia drivers would be missing from default images, as we currently only use Intel ones—unless AMD or nVidia start providing an entirely free/libre and open source stack to run their cards efficiently). To the endorsement and beyond!

Purist services

While we focused most of our energy towards building infrastructure for PureOS, we also gain one notable feature very important for future of Purist services usage: keysafe. Joey created this to make it easy for all our users, as services will use GPG keys in some form—and we all know how hard that can be to use, for many reasons. Not only we built such a feature, Joey also deployed it as the standard for our servers already (check here for requirements and path to our server). We will also move the Purist Services roadmap to the PureOS bug tracker (or make it visible at some place so people can hop in to contribute).


Our systems administrators are volunteers. They believe in what we do and dedicate some portion of their time to our cause. We mentioned this many times, but  we really want the community integrated inside the company, not to become just another commercial entity. We care for our community and we would love you in. Head towards anything you want to help with (you can see how much we trust community that they take care of our critical infrastructure) and please do chat with us. To show appreciation for their entire effort we sent Librems to our sysadmins and one of them even responded with a great tale that made us laugh (sadly we can’t share it here). Yes, we love fun stories (we want even to integrate some humor into all our products so feel free to suggest something “spicy”). We lived entirely of community donations (in form of purchasing our hardware) and although we started searching for some investments to speed up our development, we still trust that the community will stay the biggest backbone of our progress.


You can jump straight into coding for PureOS. Probably the only missing bit is Developer Guidelines, and we plan that write those soon. Besides technical aspects (how to do proper packaging) we will also make some guidelines about look & feel. For example, it would be awesome to have beautiful GUI app for creating, editing, maintaning GPG keys. It should work just as nicely as Etcher.

That would be all folks, we will try to update blog (not only technical part) more often, especially now that our website has new contents and a new look, improved in many ways thanks to the tireless efforts of our marketing guru Jeff (from the land of maple syrup)!