Cerbero build system used to build the official upstream GStreamer 1.0 SDK binaries
Nicolas Dufresne
Nicolas Dufresne download: Setup default tries and timeout
Currently, we rely on wget default for download tries and timeout. This
can take several minute when the remote server hangs. This setup the
default tries count to 2 and reduce the timeout to 5s.
Latest commit 50dfd69 Dec 13, 2018

README

***********
Description
***********

cerbero is a multi-platform build system for Open Source projects that builds
and creates native packages for different platforms, architectures and distributions.

Projects are defined using recipes files (.recipe), which provides a description
of the project being built such as name, version, licenses, sources and the way
it's built. It also provide listing of files, which is later used for the packaging.

Packages are defined using packages files (.package), describing the package name,
version, license, maintainer and other fields used to create the packages. A
package wraps a list of recipes, from which the list of files belonging to the
package will be extracted.


********************
Minimum Requirements
********************

cerbero provides bootstrapping facilities for all platforms, but it still needs a
minimum base to bootstrap

Linux
-----
On linux, you will only need a distribution with python >= 3.5.

OSX
---
On OSX you will need to have install the following software:
  * XCode
  * python3 https://www.python.org/downloads/

Windows
-------
The initial setup on Windows is a little bit longer, but only a few programs are required.
  * Python3: https://www.python.org/downloads/
   * First page of the installer
    - Check "Add Python 3.x to PATH"
    - Click "Customize installation"
   * Second page, check "pip"
   * Third page, select:
    - Install for all users
    - Associate files with Python
    - Add Python to environment variables
    - Customize install location: C:\Python3
  * CMake: http://www.cmake.org/cmake/resources/software.html
  * Git: http://git-scm.com/download/win or https://gitforwindows.org/
     IMPORTANT: Select the install option "Checkout as-is, Commit as-is"
  * Msys/MinGW: http://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download
     Install it with all the options enabled
  * WiX 3.11.1 installer: https://github.com/wixtoolset/wix3/releases/tag/wix3111rtm

Several packages that have Meson build files are now built by default with
Visual Studio, so you need to install Visual Studio 2015 or newer in the
default location. The Visual Studio Community build which is free for
open-source use can be installed at:

  * https://visualstudio.microsoft.com/vs/older-downloads/

You should add the cerbero git directory to the list of excluded folders in your
anti-virus, or you will get random build failures when Autotools does file
operations such as renames and deletions. It will also slow your build by
about 3-4x.

cerbero must be run in the MingGW shell, which is accessible from the main menu
or desktop (if it is not, go to Mingw Installation manager, select MSYS Base
Development and install msys-bash lnk).

The path to your $HOME must not contain spaces. If your windows username
contains spaces, you can create a new directory in /home and execute:
$ echo 'export HOME=/home/newdir' > ~/.profile
Then restart your shell and type 'cd' to go to the new home directory.

Note that inside the shell, / is mapped to c:\Mingw\msys\1.0\

*****
Usage
*****

Despite the presence of setup.py this tool does not need installation. It is invoked via the
cerbero-uninstalled script, which should be invoked as ./cerbero-uninstalled, or you can add 
the cerbero directory in your path and invoke it as cerbero-uninstalled.

On Windows it should be invoked as "python ./cerbero-uninstalled".

Bootstrap
---------
Before using cerbero for the first time, you will need to run the bootstrap command.
This command installs the missing parts of the build system using the packages manager
when available. Note that this will take a while (a couple hours or even more).
  $ ./cerbero-uninstalled bootstrap

Help
----
  $ ./cerbero-uninstalled --help

List available recipes
----------------------
  $ ./cerbero-uninstalled list

List available packages
-----------------------
  $ ./cerbero-uninstalled list-packages

Build a recipe
--------------
  $ ./cerbero-uninstalled build gtk+

Rebuild a single recipe
-----------------------
  $ ./cerbero-uninstalled buildone gtk+

Clean a recipe
--------------
  $ ./cerbero-uninstalled cleanone gtk+

Create a package (this automatically invokes build)
----------------
  $ ./cerbero-uninstalled package gstreamer-1.0


*******
License
*******

cerbero is released under the GNU Lesser General Public License, Version 2.1 (LGPLv2.1)