- use HTTPS - avoid redirects - supply Archive.org snapshots for old resources
108 lines
4.7 KiB
Text
108 lines
4.7 KiB
Text
Build Dependencies
|
|
==================
|
|
:Author: core-devs
|
|
:Date: 2/2020
|
|
:toc:
|
|
|
|
|
|
_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(TM) helps with porting.
|
|
|
|
Having said that -- for the time being, the core team won't spend much effort on porting.
|
|
|
|
Platform
|
|
--------
|
|
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.
|
|
|
|
Graphics::
|
|
There are no special requirements for the graphic system.
|
|
Hardware acceleration will likely be added later through extensions,
|
|
but will remain strictly optional.footnote:[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]
|
|
|
|
Disks::
|
|
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.
|
|
|
|
Special Hardware::
|
|
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
|
|
|
|
Compatibility
|
|
~~~~~~~~~~~~~
|
|
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.
|
|
|
|
Languages and Tools
|
|
-------------------
|
|
|
|
* C / C++
|
|
|
|
- a C99 / C++17 compatible compiler footnote:[in practice, we build using GCC and
|
|
occasionally we check using Clang]
|
|
- GCC *7* or Clang *6* should be fine footnote:[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
|
|
|
|
* Script languages
|
|
- Python (*2.x*) might still be handy for build scripts.footnote:[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)
|
|
|
|
Build Tools
|
|
~~~~~~~~~~~
|
|
|
|
* Git
|
|
* SCons *2.0* footnote:[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 link:/documentation/technical/infra/debianDepot.html[Debian/Ubuntu package] (relying on debhelper, CDBS, git-buildpackage)
|
|
|
|
Libraries
|
|
~~~~~~~~~
|
|
|
|
* BOOST
|
|
* link:http://nobug.pipapo.org/[NoBug]
|
|
* https://github.com/bplaum/gavl[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 footnote:[for the XV viewer widget `gui/output/xvdisplayer.cpp`
|
|
-- currently obsolete as of [yellow-background]#5/2015#][yellow-background]#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«footnote:[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.]
|
|
|
|
|