Lumiera is written for GNU/Linux.
We try to get the best out of modern system programming
techniques to reach a solid performance and good throughput.
Lumiera shall scale with the provided Hardware,
the more RAM and the more/faster CPU’s you have the better.
Nevertheless lower end 32bit machines are supported too.
Secondary targets will be other free operating systems which offer a decent Posix API. Porting to other more or less similar platforms will be possible, if — by coincidence — Someone™ helps with porting.
Having said that — for the time being, the core team won’t spend much effort on porting.
We develop and test on standard PC hardware, 32 and 64 bit. It is intended to target other platforms running GNU/Linux eventually. Lumiera expects a ‘standard’ desktop installation running a XServer.
There are no special requirements for the graphic system.
Hardware acceleration will likely be added later through extensions,
but will remain strictly optional.
[For the time being, we’ll watch
the evolution in that area and might revisit that topic when there are more
compelling and widely supported solutions available]
No special requirements. Video editing requires decent disk speed though, so it is suggested to use a fast/big array of disks configured as raid.
Support for special hardware would be possible, but depends on certain conditions
we need access / donations for the hardware
Specs and APIs must be open.
someone to do the actual interfacing and support needs to join the team
We try to keep our depdendencies close to Debian/stable and the most recent Ubuntu LTS. Whenever we need more recent libraries or other dependencies not available for our reference platform, we care to provide custom Debian / Ubuntu packages as reference. This does not mean Lumiera is limited to Devian flavours, it should work on any current Linux distribution.
C / C++
a C99 / C++17 compatible compiler
[in practice, we build using GCC and
occasionally we check using Clang]
GCC 7 or Clang 6 should be fine
[basically we try to use just the stock language.
On rare occasions in the past, we did use some GCC extensions, like typeof()
, but we care for
workarounds, in case this becomes a problem. Incidentally, typeof()
is obsoleted by the new
C++ standard, which provides decltype()
for this purpose.]
.
BOOST (listed below are the Debian package names)
libboost-dev (at least 1.67)
libboost-program-options-dev
libboost-program-options-dev
libboost-filesystem-dev
Script languages
Python (2.x) might still be handy for build scripts.
[SCons supports both Python 2.x
and Python 3.x transparently. Basically there is no reason to stick to Python 2.x — just the standard
python is not yet switched on Debian/stable, and so we might miss out on some scripts.]
bash (some test scripts use bash specific extensions)
Git
SCons 2.0
[we build with SCons >= 3.0 since a long time. However, since the times of 2.0,
there are no major breaking improvements we rely on — so chances are that the Build works fine with
older versions. In addition, we use some SCons plug-ins, which are all shipped in-tree (admin/scons
)]
pkg-config
Doxygen
We maintain a Debian/Ubuntu package (relying on debhelper, CDBS, git-buildpackage)
BOOST
GAVL (for raw media support)
ALSA: libasound2-dev
for the GUI: (GTK-3) gtkmm-3.0 gdlmm-3.0 glibmm-2.4 cairomm-1.0 xv
libgtkmm-3.0-dev
libcairomm-1.0-dev
libglibmm-2.4-dev, requiring at least glib2.0 (2.40 or better) and gthread-2.0
libxv-dev
[for the XV viewer widget gui/output/xvdisplayer.cpp
— currently obsolete as of 5/2015]
TODO 5/2015 and X-lib
librsvg-2.0 and librsvg2-dev for rendering Icons
libgdl-3 (3.12 or better) through libgdlmm-3 — the »Gnome Docking Library«
[GDL isn’t directly related to GNOME any more.
We contributed to the improvement of this library in the past. These improvements went upstream
with GDL-2.27. At times, we used to ship our own GDL package. Right now, a recent upstream version
together with the corresponding *mm-bindings will do. We provide a debian package for the latter,
until they will be available in the official Debian/Ubuntu/Mint repos. But we don’t have any
special requirements on these gdlmm
bindings.]