It's been quite a while since I wrote a Megapixels update post. Since my last post libmegapixels has had a lot more testing on hardware other than the PINE64 devices and the Librem 5 which I originally wrote it for. This obviously found a few flaws in my library code for edge cases I hadn't had to deal with before but overall the fundamental ideas behind the library seem to work.

I have now removed the last device-specific workaround from the libmegapixels code and the device support is now purely config files with a few flags to turn on quirks present in a few drivers like not having ioctls implemented correctly.

I once again stood before the software release dilemma: should I push a release that's not perfect or keep waiting and waiting to release until every last bug has been ironed out. Currently when running Megapixels 2.0 on the original PinePhone it's not a perfect drop-in replacement with all the features which is why I wanted to hold off on a release. But there's a few other devices that now already have 100% camera functionality on the development branch and for those devices a release would be great.

Megapixels 2.0.0-alpha1

As a compromise I have tagged an alpha release now from the development branch. This was issues can be ironed out that will happen when running Megapixels on one of the many combinations of distributions and devices. Since Megapixels now is also split up in the megapixels, libdng and libmegapixels projects the packaging can also now be figured out. The two libraries also have a new 0.2.0 tag now that marks the minimum version required for running the alpha release.

With this release it also means that all the library apis are now somewhat stable, but more importantly I'm now pretty confident that the config file format won't need any intrusive changes anymore so files for other devices can now be created without risking a lot of breakage down the line.

This format now also finally has some proper documentation over at https://libme.gapixels.me/config.html because "copy another file and hope for the best" is simply not a great developer experience.

Megapixels 2.0 running on the Samsung Galaxy SIII (ported by @jack_kekzoz)

Many thanks

I've not build this release alone ofcourse. I'd like to thank @k.vos, @pavelm, @pastalian, @jack_kekzoz, @barni2000 and @Luigi311 for their contributions to all the various parts of this codebase. I'd also like to thank the people that have supported my patreon/liberapay to sponsor me working on this :)

The release

The most important link ofcourse, the Megapixels tag:

https://gitlab.com/megapixels-org/Megapixels/-/tags/2.0.0-alpha1

The libraries releases are:

Documentation available at: