post-release 03: combined build-fixes
The release-branch tracks the latest release with applicable bugfixes; after completing the release process, all fixes are merged back to mainline.
This commit is contained in:
commit
9adea69ee5
8 changed files with 3400 additions and 16 deletions
|
|
@ -56,7 +56,7 @@ def configure(env):
|
|||
conf.env.Append(CPPFLAGS = ' -DHAVE_PTHREAD')
|
||||
conf.env.Append(CCFLAGS = ' -pthread')
|
||||
|
||||
if not conf.CheckLib(symbol='clock_gettime', library='rt'):
|
||||
if not conf.CheckLib(symbol='clock_gettime', library='rt'): # note librt is usually installed with libc6
|
||||
problems.append('We expect the POSIX realtime extensions to be available through librt. ' +
|
||||
'Unable to use clock_gettime()')
|
||||
|
||||
|
|
@ -100,7 +100,7 @@ def configure(env):
|
|||
problems.append('We need the boost regular expression lib (incl. binary lib for linking).')
|
||||
|
||||
|
||||
if not conf.CheckPkgConfig('gavl', 1.0):
|
||||
if not conf.CheckPkgConfig('gavl', '1.4'):
|
||||
problems.append('Did not find Gmerlin Audio Video Lib [http://gmerlin.sourceforge.net/gavl.html].')
|
||||
else:
|
||||
conf.env.mergeConf('gavl')
|
||||
|
|
@ -108,19 +108,22 @@ def configure(env):
|
|||
if not conf.CheckPkgConfig('alsa', '1.0.23'):
|
||||
problems.append('Support for ALSA sound output is required')
|
||||
|
||||
if not conf.CheckPkgConfig('gtkmm-3.0', 3.0):
|
||||
problems.append('Unable to configure GTK--')
|
||||
if not conf.CheckPkgConfig('gtkmm-3.0', '3.10'):
|
||||
problems.append('Unable to configure the mm-bindings for GTK-3')
|
||||
|
||||
if not conf.CheckPkgConfig('glibmm-2.4', '2.16'):
|
||||
problems.append('Unable to configure Lib glib--')
|
||||
if not conf.CheckPkgConfig('glibmm-2.4', '2.39'):
|
||||
problems.append('Unable to configure the mm-bindings for Glib')
|
||||
|
||||
if not conf.CheckPkgConfig('gthread-2.0', '2.12.4'):
|
||||
problems.append('Need gthread support lib for glib-- based thread handling.')
|
||||
if not conf.CheckPkgConfig('glib-2.0', '2.40'):
|
||||
problems.append('Need a suitable Glib version.')
|
||||
|
||||
if not conf.CheckPkgConfig('cairomm-1.0', 0.6):
|
||||
if not conf.CheckPkgConfig('gthread-2.0', '2.40'):
|
||||
problems.append('Need gthread support lib for Glib based thread handling.')
|
||||
|
||||
if not conf.CheckPkgConfig('cairomm-1.0', '1.10'):
|
||||
problems.append('Unable to configure Cairo--')
|
||||
|
||||
verGDL = '3.8' # NOTE: lowered requriements here (was originally '3.12')
|
||||
verGDL = '3.8' # lowered requirements to allow building on Ubuntu/Trusty & Mint (was originally '3.12')
|
||||
verGDLmm = '3.7.3'
|
||||
urlGDLmm = 'http://ftp.gnome.org/pub/GNOME/sources/gdlmm/'
|
||||
urlGDLmmDEB = 'http://lumiera.org/debian/'
|
||||
|
|
@ -132,12 +135,14 @@ def configure(env):
|
|||
'(either from GNOME %s or use the debian package from %s)' %
|
||||
(verGDLmm, urlGDLmm, urlGDLmmDEB))
|
||||
|
||||
if not conf.CheckPkgConfig('librsvg-2.0', '2.18.1'):
|
||||
if not conf.CheckPkgConfig('librsvg-2.0', '2.30'):
|
||||
problems.append('Need rsvg Library for rendering icons.')
|
||||
|
||||
if not conf.CheckCHeader(['X11/Xutil.h', 'X11/Xlib.h'],'<>'):
|
||||
problems.append('Xlib.h and Xutil.h required. Please install libx11-dev.')
|
||||
|
||||
# NOTE the following dependencies where for the video displayer widget.
|
||||
# As of 11/2015 this is broken and disabled. Might be obsolete....
|
||||
if not conf.CheckPkgConfig('xv') : problems.append('Need libXv...')
|
||||
if not conf.CheckPkgConfig('x11') : problems.append('Need X-lib...') # for the xvdisplayer widget
|
||||
if not conf.CheckPkgConfig('xext'): problems.append('Need libXext.')
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ def defineBuildEnvironment():
|
|||
|
||||
env.Replace( CPPPATH =["#src"] # used to find includes, "#" means always absolute to build-root
|
||||
, CPPDEFINES=['LUMIERA_VERSION='+VERSION ] # note: it's a list to append further defines
|
||||
, CCFLAGS='-Wall -Wextra'
|
||||
, CCFLAGS='-Wall -Wextra -Wformat-security'
|
||||
, CXXFLAGS='-std=gnu++14 -Wno-enum-compare'
|
||||
, CFLAGS='-std=gnu99'
|
||||
)
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ Having said that -- for the time being, the core team won't spend much effort on
|
|||
Platform
|
||||
--------
|
||||
We develop and test on standard PC hardware, 32 and 64 bit.
|
||||
It is intended to target other platforms running run GNU/Linux eventually.
|
||||
It is intended to target other platforms running GNU/Linux eventually.
|
||||
Lumiera expects a `standard' desktop installation running a XServer.
|
||||
|
||||
Graphics::
|
||||
|
|
@ -42,6 +42,12 @@ Special 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
|
||||
-------------------
|
||||
|
|
@ -86,7 +92,7 @@ Libraries
|
|||
* 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 and gthread-2.0
|
||||
- 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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
Backporting to older platforms
|
||||
==============================
|
||||
:Date: 8/2015
|
||||
:Date: 11/2015
|
||||
:toc:
|
||||
|
||||
GCC-4.9
|
||||
-------
|
||||
|
|
@ -59,4 +60,69 @@ sudo update-alternatives --config gcc
|
|||
----
|
||||
|
||||
|
||||
Building on Mint 17.2 (Rafaela) -- gcc and Libstdc++ 4.9
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Since Mint is based on Ubuntu LTS, we're facing pretty much the same situation here.
|
||||
But what makes matters yet more confusing is the fact, that Mint offers even a Clang-3.6
|
||||
package, which is _unfortunately_ built to rely on the gcc-4.8 libraries; there is a known
|
||||
header inclusion bug in these libraries, which kicks in as soon as we switch to C++14.
|
||||
|
||||
Thus it is _mandatory_ to install the gcc-4.9 from above mentioned Ubuntu-Toolchain PPA,
|
||||
which is indeed linked against the 4.9 libraries. Stay away from Clang on Mint for now!
|
||||
|
||||
Transcript from a build session on a ``pristine'' Mint 17.2 installation:
|
||||
|
||||
* add the following to your `/etc/apt/sources.list`
|
||||
+
|
||||
----
|
||||
deb http://lumiera.org/debian/ rafaela experimental
|
||||
deb-src http://lumiera.org/debian/ rafaela experimental
|
||||
----
|
||||
|
||||
* install _Ichthyo's_ DEB signing key
|
||||
+
|
||||
----
|
||||
gpg --keyserver keyserver.ubuntu.com --recv A1DE94B2
|
||||
gpg --export -a A1DE94B2 | sudo apt-key add -
|
||||
----
|
||||
|
||||
* prepare build environment
|
||||
+
|
||||
----
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get update
|
||||
sudo apt-get install build-essential gcc-4.9 g++-4.9 git-core
|
||||
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 \
|
||||
--slave /usr/bin/g++ g++ /usr/bin/g++-4.9
|
||||
|
||||
sudo apt-get build-dep lumiera
|
||||
----
|
||||
+
|
||||
after that, your system is prepared for building Lumiera
|
||||
|
||||
* now build
|
||||
|
||||
* either by (re)compiling the debian package
|
||||
+
|
||||
----
|
||||
apt-get source lumiera
|
||||
cd lumiera
|
||||
dpkg-buildpackage
|
||||
----
|
||||
|
||||
* or check out the source and hack away...
|
||||
+
|
||||
----
|
||||
git clone git://git.lumiera.org/LUMIERA
|
||||
cd LUMIERA
|
||||
|
||||
scons CC=gcc-4.9 CXX=g++-4.9
|
||||
----
|
||||
+
|
||||
...as usual, from this point on, the compiler setting will be remembered in the file
|
||||
`optcache`, so no need to repeat it for subsequent `scons` invocations.
|
||||
|
||||
TIP: Just run `scons` for standard build or run the testsuite with `scons check`.
|
||||
Use the switch `-j#` with # corresponding to the number of your cores.
|
||||
Probably you'll need at least 2GB of memory on AMD64, to build with `-j6`
|
||||
|
||||
|
|
|
|||
75
doc/technical/infra/Release.txt
Normal file
75
doc/technical/infra/Release.txt
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
Release preparation
|
||||
===================
|
||||
:Author: Ichthyo
|
||||
:Date: Nov 2015
|
||||
|
||||
we have nothing to show and don't provide public releases yet --
|
||||
but we ought to rehearse and practice the release process.
|
||||
This document contains some hints and a checklist of steps
|
||||
to perform for a proper release.
|
||||
|
||||
Steps to perform for a release
|
||||
------------------------------
|
||||
|
||||
. release prep: clean-up obsolete information
|
||||
|
||||
- Debian package descriptions
|
||||
- Build-Tutorial
|
||||
|
||||
* building from source
|
||||
* building the debian way
|
||||
* contributing
|
||||
|
||||
- technical/build/Dependencies
|
||||
|
||||
. release prep: bump version number
|
||||
|
||||
- `admin/scons/Setup.py`
|
||||
- `data/config/setup.ini`
|
||||
- `doc/devel/Doxyfile`
|
||||
- `doc/devel/Doxyfile.browse`
|
||||
|
||||
. perform a back-merge from the release branch. +
|
||||
It is relevant not to loose any bugfixes. Especially verify
|
||||
|
||||
- that all ongoing fixes from DEBs and other build activities
|
||||
are properly represented as patches and committed to the release branch
|
||||
- that adjustments to platform dependencies are picked up adequately
|
||||
|
||||
. perform the *Release-commit*:
|
||||
it should mention the kind of the release and the version number.
|
||||
Typically, with this commit, you'll update some top level stuff in the
|
||||
source tree, like
|
||||
|
||||
- `README`
|
||||
- `AUTHORS`
|
||||
|
||||
* also in the ``about'' box in the GTK-UI
|
||||
* see `setup.ini`
|
||||
|
||||
- check the `LICENSE` file and add new license
|
||||
declarations and notes, clean obsolete info here.
|
||||
|
||||
. update the *release branch*: ``upgrade current release to ##.##'' +
|
||||
Make sure the release branch now really reflects current master, maybe
|
||||
with the omission of some stuff to be kept out of the packages.
|
||||
Set the *release tag*
|
||||
|
||||
. packaging...
|
||||
|
||||
- merge release -> deb
|
||||
- verify the package description
|
||||
- have a look at manpages and similar packaging documents
|
||||
- update `debian/control` to reflect current version dependencies
|
||||
- have a look into `debian/rules` (e.g. build flags and similar)
|
||||
|
||||
. delivery
|
||||
|
||||
- use whatever infrastructure is available to build packages.
|
||||
- verify packages can be installed on a pristine VM
|
||||
- upload packages to debian depot or commit them to PPAs
|
||||
- clean-up and discard obsoleted old distributions and packages
|
||||
|
||||
. close the **release ticket**
|
||||
|
||||
|
||||
|
|
@ -62,7 +62,12 @@ The GUI depends on the following:
|
|||
* link:http://cgit.freedesktop.org/xorg/lib/libXv[libXv]
|
||||
* link:https://wiki.gnome.org/LibRsvg[lib rSVG]
|
||||
* link:https://git.gnome.org/browse/gdl[lib GDL]
|
||||
|
||||
|
||||
CAUTION: there are known problems with *GCC-5.x* as of 11/2015 +
|
||||
on recent distributions (Ubuntu/wily, Debian/stretch) you might
|
||||
encounter failing tests.footnote:[these problems aren't really serious;
|
||||
basically we're sometimes checking mangled class/type names, and seemingly
|
||||
the mangling behaviour of GCC has changed slightly. We're working on that...]
|
||||
|
||||
TIP: Generally speaking, when you want to build software, you'll need the
|
||||
_development_ version of the packages that contain the headers and pre-built
|
||||
|
|
@ -79,6 +84,14 @@ libgavl-dev libgtkmm-3.0-dev libgdl-3-dev librsvg2-dev libxv-dev
|
|||
Ubuntu note::
|
||||
some people reported you need to install the `intltool` package from the standard
|
||||
Ubuntu repository (for this reason it is included in the above collection)
|
||||
Mint-17.2 (Rafaela) and Ubuntu 12.LTS::
|
||||
we really need the gcc-4.9, so building on these platforms is a bit tricky. See our
|
||||
link:{ldoc}/technical/howto/backporting.html#_building_on_mint_17_2_rafaela_8201_8212_8201_gcc_and_libstdc_4_9[»Backporting«]
|
||||
page for detailed info...
|
||||
GCC-5.0::
|
||||
we're aware of some changes in mangled names (or type-IDs), which cause some tests to fail.
|
||||
Other than that, compilation worked for us.
|
||||
|
||||
|
||||
|
||||
Build Directory
|
||||
|
|
|
|||
|
|
@ -236,6 +236,7 @@ fact, many user interfaces should be possible.
|
|||
- The initial GUI on which considerable work has already been done has been
|
||||
implemented using the GTK toolkit. However, considerable more work needs to be
|
||||
done on this present GUI.
|
||||
- the stylesheet has been roughly ported to GTK-3, but needs a lot more polishing
|
||||
- we urgently need conceptual (non-coding) contributions
|
||||
|
||||
* work out a coherent UI handling concept, in accordance with model and core
|
||||
|
|
|
|||
3218
wiki/thinkPad.ichthyo.mm
Normal file
3218
wiki/thinkPad.ichthyo.mm
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue