Scripted Compilation on Linux Debian/Ubuntu: Difference between revisions

Jump to navigation Jump to search
(→‎When building 'next', you may see build errors: Update according to the latest FG policy and available d&c options)
Line 419: Line 419:
=== Choosing between stable and development versions ===
=== Choosing between stable and development versions ===


By default, <tt>download_and_compile.sh</tt> fetches code and data from development branches of the source repositories (which sometimes causes compilation or runtime errors). However, it is possible to tell the script to download the latest ”stable” version of each component, for some suitable definition of “stable”. This is by means of the <code>-s</code> option:
By default, <tt>download_and_compile.sh</tt> fetches code and data from development branches of the source repositories (which sometimes causes compilation or runtime errors). However, it is possible to tell the script to download the latest “stable” version of each component, for some suitable definition of “stable”. This is by means of the <code>-s</code> and <code>--lts</code> options:
  $ download_and_compile.sh -s ''COMPONENT1 COMPONENT2...''
  $ download_and_compile.sh -s ''COMPONENT1 COMPONENT2...''
or
$ download_and_compile.sh --lts ''COMPONENT1 COMPONENT2...''


How does it work?
How does it work?
* For [[SimGear]], FlightGear and [[FGData]], it uses the most recent stable release branch of the corresponding Git repository.
* For [[SimGear]], FlightGear and [[FGData]], <code>-s</code> uses the most recent stable release branch of the corresponding Git repository, and <code>--lts</code> uses the most recent Long Term Support release (LTS).
* For some components, a known-stable version is hardcoded in <tt>download_and_compile.sh</tt> and used when the <code>-s</code> option is given<ref name="components-with-a-known-stable-version-hardcoded-in-download_and_compile_sh">As of May 2019, apart from SIMGEAR, FGFS and DATA, the only components for which <tt>download_and_compile.sh</tt> “knows” a stable version are TERRAGEAR and OPENRTI.</ref> (for instance, the hardcoded information can be the name of a Git branch).
* For other components, a known-stable version is selected by <tt>download_and_compile.sh</tt>, which may be influenced by the use of <code>-s</code> or <code>--lts</code>.
* For the other components, the <code>-s</code> option has no effect.


{{Warning|In a given folder where <tt>download_and_compile.sh</tt> is run, you should either always use the <code>-s</code> option, or never. Building some components with <code>-s</code> and others without (all within the same base folder) is not supported.}}
{{Warning|In a given folder where <tt>download_and_compile.sh</tt> is run, you should either always use the <code>-s</code> option, or always use the <code>--lts</code> option, or always none of these. In other words, better stick with the same suite: latest stable, latest LTS or ''next'', consistently accross all components.}}


Applying what we just said to the FGFS component (FlightGear) leaves us with two main options:
So, as far as the SIMGEAR, FGFS and DATA components are concerned, you can:
* build the latest stable release;
* build the latest stable release (<code>-s</code>);
* build the latest Long Term Support release (<code>--lts</code>);
* build the current development version (bleeding edge), which lives in the {{flightgear source
* build the current development version (bleeding edge), which lives in the {{flightgear source
| branch = next
| branch = next
| text = next
| text = next
}} branch of the FlightGear repository.
}} branch of the FlightGear repository.
The use of <code>-s</code> or <code>--lts</code> also influences the version of other components you may have selected (this can be overridden using <code>--component-branch</code>, for advanced users).


==== Building the latest stable FlightGear release ====
==== Building the latest Long Term Support release of FlightGear ====
 
When executing <tt>download_and_compile.sh</tt>, use the <code>--lts</code> option to build the latest Long Term Support release:
$ cd ~/flightgear/dnc-managed
$ download_and_compile.sh --lts
(In this example, the implicitly-selected components are SIMGEAR, FGFS and DATA, as explained [[#selecting-the-components-to-work-on | above]].)
 
{{Note|If you decide to use the <code>--lts</code> option in a given directory tree, you should use it for all components in that directory tree (SIMGEAR, FGFS, DATA, etc.). Running <tt>download_and_compile.sh</tt> in a given directory with the <code>--lts</code> option for some components and not for others is not supported.}}
 
==== Building the latest stable release of FlightGear ====


When executing <tt>download_and_compile.sh</tt>, use the <code>-s</code> option to build the latest stable release:  
When executing <tt>download_and_compile.sh</tt>, use the <code>-s</code> option to build the latest stable release:  
Line 449: Line 461:
  $ cd ~/flightgear/dnc-managed
  $ cd ~/flightgear/dnc-managed
  $ download_and_compile.sh
  $ download_and_compile.sh
(In this example, the implicitly-selected components are SIMGEAR, FGFS and DATA, as explained [[#selecting-the-components-to-work-on | above]].)


{{Note|The development version of FlightGear changes on an almost daily basis. It provides the latest features, but is not guaranteed to always work reliably. If you don't want to take the risk of finding new bugs when updating, you may prefer to use the latest stable release.}}
{{Note|The development version of FlightGear changes on an almost daily basis. It provides the latest features, but is not guaranteed to always work reliably. If you don't want to take the risk of finding new bugs when updating, you may prefer to use the latest stable release.}}
377

edits

Navigation menu