<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alioth.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiran</id>
	<title>Elite Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alioth.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hiran"/>
	<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php/Special:Contributions/Hiran"/>
	<updated>2026-08-08T09:17:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=OXP&amp;diff=90024</id>
		<title>OXP</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=OXP&amp;diff=90024"/>
		<updated>2026-07-23T05:01:37Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Creating an OXP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:oolite-oxp-icon.png|128px|right|OXP icon]]&lt;br /&gt;
An '''OXP''' ('''O'''olite e'''X'''pansion '''P'''ack) is an enhancement to the game [[Oolite]]. An OXP could be a new game object (such as a ship, space station or a moon), a mission, or a combination of several elements. OXPs can use all of the facilities of Oolite, including some that are not used in the standard, unexpanded game. Please note that if you run Oolite in 'Strict Play' mode (set via pressing F2 when docked or paused and then selecting 'Reset to Strict play'), OXPs are not loaded.&lt;br /&gt;
&lt;br /&gt;
An '''OXZ''' is an OXP in a particular '''Z'''ipped format to make it easier for Oolite to process and for players to install - to find out what's inside one, use your unzipping tool of choice on it.&lt;br /&gt;
&lt;br /&gt;
== Finding OXPs ==&lt;br /&gt;
=== OXPs ===&lt;br /&gt;
*The '''[[OXP List]]''' provides the most comprehensive list of Oolite OXP expansion packs.&lt;br /&gt;
*[[Guide to Unlisted OXPs]] has another 200 or so (which are not listed elsewhere).&lt;br /&gt;
&lt;br /&gt;
These have to go into your AddOns folder (see below).&lt;br /&gt;
=== OXZs ===&lt;br /&gt;
*The [http://www.oolite.space/oxps/#oxp '''OXZ List'''] provides the most comprehensive list of Oolite OXZ expansion packs (but only those uploaded to the in-game Expansions Manager).&lt;br /&gt;
*Just for fun, the [[Index of artefacts]] provides the most comprehensive analysis of these Oolite OXZ expansion packs...&lt;br /&gt;
*there are just a handful of OXZs (mostly experimental, but including some excellent ones by phkb) not listed on the Expansions Manager/OXZ List. They are mostly in the [[Guide to Unlisted OXPs]] mixed in with everything else.&lt;br /&gt;
*Check out the [[Oolite Starter]] which makes management of the expansions in your Ooniverse refeshing like a sip of properly chilled gin and tonic.&lt;br /&gt;
&lt;br /&gt;
Those in the in-game Expansions Manager should go in your Managed AddOns folder. Those which are not should go in your AddOns folder. See below.&lt;br /&gt;
&lt;br /&gt;
=== Old versions ===&lt;br /&gt;
For purely historical purposes (or a touch of nostalgia if you've been around Oolite for a long time) you might want to look at [http://oosat.alioth.net The Oolite Satellite Resource Site] ('''Oosat2''', quite broken but still accessible, 2006-11-04 until 2007-03-03) or the even older [http://capnhack.com/hosting/oolite/Oolite/OoSat.html Captain Hack OoSat Site] ('''Oosat1''', beginning until 2006-10-14). Oosat may have originally been hosted here on Alioth.net, as was '''Oldsat'''. They had a tendency to go off-line or to crash, losing all information. Search on the BB if you are curious!&lt;br /&gt;
&lt;br /&gt;
For your curiosity and maybe one or the other odd find there is also the [[OXP Attic]] which houses derelict OXPs from times long past. Also see [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=20721 Recovering Lost Oxp's].&lt;br /&gt;
&lt;br /&gt;
== OXPs suitable for new players ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
It is suggested that players new to the game should be careful when choosing OXPs. The basic game is extremely well-balanced and has stood the test of time, but many OXPs change the balance and dynamics of the game.&lt;br /&gt;
&lt;br /&gt;
To make an informed choice as to what OXPs you might want, you do need to understand the way the standard game works first, so it is recommended that new players should consider playing Oolite without game-changing OXPs for a while.&lt;br /&gt;
&lt;br /&gt;
However, many OXPs will just enhance eye-candy and ambience - they make the game look better, or add features which make the Oolite experience more enjoyable without affecting the way the game plays.&lt;br /&gt;
&lt;br /&gt;
To help, a [[OXP_List_for_New_Players| list of suitable OXPs for newcomers]] has been compiled. These are OXPs that will not affect gameplay but are worthwhile additions for the new player who wants a diverse and visually exciting Ooniverse. &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Everyone has their own idea of what OXPs should be in a starter pack, or which are just best. There are several threads on the Forum on this topic, perhaps the best-balanced and most useful for newcomers being [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=11885 this one]. &lt;br /&gt;
&lt;br /&gt;
== Suitability for simpler or for more difficult/advanced gaming ==&lt;br /&gt;
There exists a way of marking an OXP's difficulty level according to the author's belief. You can find the [[OXP_Levelindicators|level indicators]] on the wiki.&lt;br /&gt;
&lt;br /&gt;
Another system in progress is [[Template:IconOXP]].&lt;br /&gt;
&lt;br /&gt;
==Player recommendations==&lt;br /&gt;
These commanders have put together lists of their personal favourites:&lt;br /&gt;
*[[User:Cpt|Cpt]] (2013)&lt;br /&gt;
*[[User:JazHaz|JazHaz]] (2013)&lt;br /&gt;
*[[User:Zireael|Zireael]] (2014)&lt;br /&gt;
*[[User:Norby#Recommended_OXPs|Norby]] (2015-7): includes packages of recommended OXPs for new players, the more experienced ''etc''.&lt;br /&gt;
*[[User:CaptSolo|CaptSolo]] (2020)&lt;br /&gt;
&lt;br /&gt;
== Help with OXPs ==&lt;br /&gt;
&lt;br /&gt;
Information on OXPs can also be found on the [https://bb.oolite.space/viewforum.php?f=4 Expansion Pack Forum], the Friendliest Board This Side of Riedquat. The helpful people there will be happy to assist you with any questions you have about OXPs.&lt;br /&gt;
&lt;br /&gt;
== Tweaking your OXPs ==&lt;br /&gt;
Do you prefer a louder ''beep'' for audible docking clearance? Would you rather your Commander's Log also recorded purchases &amp;amp; repairs? Do you want your Laser Booster to activate automatically upon launch? &lt;br /&gt;
&lt;br /&gt;
You will find recipes for modifying some of the OXPs [https://bb.oolite.space/viewtopic.php?p=216177#p216177 here].&lt;br /&gt;
&lt;br /&gt;
== Installing an OXP ==&lt;br /&gt;
&lt;br /&gt;
OXPs are installed to the folder or directory ('folder' and 'directory' are synonyms) named '''AddOns'''. Read on, we will also tell you where to find that folder.&lt;br /&gt;
&lt;br /&gt;
=== In OXZ format ===&lt;br /&gt;
Download the OXZ file, and save it to your AddOns folder. &lt;br /&gt;
&lt;br /&gt;
Many OXZ format expansion packs can also be downloaded and installed for you from the [[Expansions Manager]] in Oolite. These will be placed in a separate folder which Oolite manages ('''ManagedAddOns''') - any you download yourself should go in the '''AddOns''' folder so that Oolite doesn't accidentally overwrite them.&lt;br /&gt;
&lt;br /&gt;
If you want to inspect an OXZ you've downloaded with the expansion pack manager, copy it out of the '''ManagedAddOns''' folder first, then open it with your unzipping program. Some versions of the Expansions Manager can do this for you when you press the ''x'' key.&lt;br /&gt;
&lt;br /&gt;
=== In OXP format ===&lt;br /&gt;
Typically, an OXP is downloaded as a ZIP file though occasionally other compression tools such as 7z or rar have been used. Unzip it to find a folder with a name ending .oxp&lt;br /&gt;
&lt;br /&gt;
After unzipping the file, make sure that it is ''only'' the OXP folder that put into the AddOns directory - some zipped OXPs can contain a top level folder with a readMe file, and the actual OXP folder is a level further down. If this is the case, move the folder with the '''.oxp''' extension into the AddOns folder.&lt;br /&gt;
&lt;br /&gt;
Sometimes the zipped files contain several folders, make sure you only copy the folder -or file for Macintoshes- ending with '''.oxp''' into the AddOns folder. This folder is found in different locations, depending on the platform.&lt;br /&gt;
&lt;br /&gt;
If you have followed these instructions and OXPs are not being recognised by the game make sure that your commander is a normal game. If you started your commander using the &amp;quot;Strict Mode&amp;quot; starting option, no OXPs will ever be used.&lt;br /&gt;
&lt;br /&gt;
== Locating your AddOns folder ==&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X ===&lt;br /&gt;
Found in the folder that contains the Oolite application.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively you can also have the '''AddOns''' folder in your user area at '''~/Library/Application&amp;amp;nbsp;Support/Oolite/AddOns/'''. When both places contain an '''AddOns''' folder, both contents are read with the content in the user libraries loading last.&lt;br /&gt;
&lt;br /&gt;
'''Troubleshooting:''' If you get an error saying &amp;quot;The item could not be moved because &amp;quot;AddOns&amp;quot; cannot be modified&amp;quot;, that can happen if you weren't the user that installed Oolite.&lt;br /&gt;
The solution is to put the OXPs of your choice in '''~/Library/Application&amp;amp;nbsp;Support/Oolite/AddOns/''' instead (you may need to create this folder).&lt;br /&gt;
The error could also be triggered because you’re running from the disk image, you’ll need to copy the game somewhere else. Having done so, if you still get the error, use the Get Info command on the AddOns folder, open the Ownership &amp;amp; Permissions pane and check that it says You Can: Read &amp;amp; Write.&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
The location of the AddOns folder will depend on whether you chose to install Oolite to 'Home' or 'System'.&lt;br /&gt;
&lt;br /&gt;
If you chose the 'Home' installation, the AddOns directory is located in '''~/GNUstep/Applications/Oolite/AddOns'''.  The AddOns folder should be in the top level of the Oolite install directory (at the same level as the oolite.app folder)  You may have to create it.&lt;br /&gt;
&lt;br /&gt;
If you chose the 'System' installation, the AddOns directory will be '''~/.Oolite/Add-ons'''. You may have to create it. Note that this is a 'hidden' directory, and so you may have to turn on 'Show hidden files' in your file manager before you can see it.&lt;br /&gt;
&lt;br /&gt;
An alternative location for a 'System' installation is the '''/opt/Oolite/AddOns''' directory, but most users find this less convenient than '''~/.Oolite/Add-ons'''.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
The AddOns folder should be in the top level of the Oolite install directory (at the same level as the oolite.app folder). Historical: if you are using the GNUStep dedicated versions (pre-Jan 2006), then the AddOns folder must be created inside the oolite.app folder.&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
If you purchase a ship that is an OXP ship and save the game, you will only be able to load that commander as long as this OXP is installed in AddOns. If it's not, Oolite will give you an error instead of trying to load the commander.&lt;br /&gt;
&lt;br /&gt;
== Managing a stable of OXPs ==&lt;br /&gt;
Nowadays we download OXZs through the in-game Expansions Manager - and it manages them for us. But if we tweak one, it usually becomes an OXP and must then be kept in the AddOns folder. Some older oxps have yet to be turned into OXZs and some experimental OXPs are in a similar position.&lt;br /&gt;
&lt;br /&gt;
So, if you have large numbers of these oxps, see the following threads from the BB.&lt;br /&gt;
*Issues with multiple expansions? [[Find the culprit]]&lt;br /&gt;
*Issues with [https://bb.oolite.space/viewtopic.php?p=273473#p273473 single OXPs]&lt;br /&gt;
*Issues with [https://bb.oolite.space/viewtopic.php?p=273490#p273490 multiple OXPs]&lt;br /&gt;
*Issues with different copies of the game on the [https://bb.oolite.space/viewtopic.php?p=272073#p272073 same hard drive]&lt;br /&gt;
*If you found a nice set of expansions and want to share that with others, consider using the [[Oolite Starter]]. It allows you to export and send expansion sets to other players, who then can activate it on their side.&lt;br /&gt;
&lt;br /&gt;
== Diagnostics ==&lt;br /&gt;
With some OXPs installed, the directory structure will look something like this:&amp;lt;br&amp;gt;&lt;br /&gt;
:'''...\AddOns\Basic-debug.oxp'''&amp;lt;br&amp;gt;&lt;br /&gt;
:'''...\AddOns\Cabal_Common_Library1.5.1.oxp'''&amp;lt;br&amp;gt;&lt;br /&gt;
:'''...\AddOns\Explorers'_Club_1.3.1_2012-01-21.oxp'''&amp;lt;br&amp;gt;&lt;br /&gt;
:'''...\AddOns\halsis.oxp'''&amp;lt;br&amp;gt;&lt;br /&gt;
:'''...\AddOns\Material Test Suite v1.2.oxp'''&amp;lt;br&amp;gt;&lt;br /&gt;
with other directories and files under each of the .oxp directories.  You should only find .oxp directories immediately under a \AddOns directory.&lt;br /&gt;
&lt;br /&gt;
If none of your OXPs are working, are you playing in Strict Mode? Try starting a new commander from the Normal Start and see if the OXPs work then.&lt;br /&gt;
&lt;br /&gt;
If you edit the contents of one of your OXPs and cannot see the change, restart Oolite holding down &amp;lt;Shift&amp;gt; to force Oolite to re-read all the OXP files.&lt;br /&gt;
&lt;br /&gt;
If an OXP you installed is not working or is misbehaving, check the [[Latest.log]] file - you should see a list of the OXPs you have installed.  You should see a trend in the names which will tell you if you have installed an OXP within another OXP (move it) or two versions of an OXP (remove the older one) or it is absent suggesting you put it in the wrong place or did not get the .oxp directory extension correct (did you unzip the OXP?).&lt;br /&gt;
&lt;br /&gt;
If you know how, a system-wide search for any directory ending in &amp;quot;.oxp&amp;quot; should pull up the OXPs you have installed and they should only appear immediately beneath a '''\AddOns''' directory and never inside another .oxp directory (this is an easily-done error when extracting a zip file).&lt;br /&gt;
&lt;br /&gt;
Note that an OXP in the AddOns folder ''trumps'' an 'identical' OXZ in the ManagedAddOns folder. So if the OXP is an older version, it will [https://bb.oolite.space/viewtopic.php?p=218632#p218632 disable] the newer OXZ.&lt;br /&gt;
&lt;br /&gt;
=== AppleMacs ===&lt;br /&gt;
... Strict semicolon parsing is a Mac thing. Windows and Linux use GNUstep to parse plists and that apparently is more relaxed syntax-wise than whatever it is that the Mac uses. &lt;br /&gt;
::[[User:Another_commander|Another_commander]] from [https://bb.oolite.space/viewtopic.php?p=262814#p262814 A possible solution?] (2018).&lt;br /&gt;
&lt;br /&gt;
... the libraries in the Mac seems to be less tolerant of some things than the GNUStep libraries on Linux:&lt;br /&gt;
:*lists are enclosed in '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''('''&amp;lt;/font&amp;gt;' '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;''')'''&amp;lt;/font&amp;gt;' with items separated by '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;''','''&amp;lt;/font&amp;gt;' and there must ''not'' be a comma after the last item in the list.&lt;br /&gt;
:*objects are enclosed in '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''{'''&amp;lt;/font&amp;gt;' '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''}'''&amp;lt;/font&amp;gt;' and consist of pairs: &amp;lt;key&amp;gt; = &amp;lt;value&amp;gt;.&lt;br /&gt;
:*Each key/value pair must have a '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;''';'''&amp;lt;/font&amp;gt;' at the end, even the last pair in the object&lt;br /&gt;
:*''if'' the object is a value in a key/value pair in another object, it's closing '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;'''}'''&amp;lt;/font&amp;gt;' must be followed by a '&amp;lt;font color=&amp;quot;Red&amp;quot;&amp;gt;''';'''&amp;lt;/font&amp;gt;'.&lt;br /&gt;
::lifted from a PM from [[User:Dybal|Dybal]] (2020)&lt;br /&gt;
&lt;br /&gt;
== Creating an OXP ==&lt;br /&gt;
[[File:Plist-XML-ASCII-ill.png|thumb|right|702px|XML (left) &amp;amp; OpenStep (right)]]&lt;br /&gt;
Legacy script comes in two versions: XML &amp;amp; OpenStep. And then there is the much more complex Javascript.&lt;br /&gt;
&lt;br /&gt;
It is intended to be easy to create expansion packs. OpenStep is relatively easy - XML and Javascript less so.&lt;br /&gt;
&lt;br /&gt;
=== Start your own OXP ===&lt;br /&gt;
&lt;br /&gt;
There are two quite extreme ways to go, and a compromise:&lt;br /&gt;
&lt;br /&gt;
* OXZs are just renamed zipped OXPs. You can decompress any existing OXZ, look inside and start tweaking.&lt;br /&gt;
* And you can start from scratch by creating everything yourself - this will take some advanced knowledge.&lt;br /&gt;
* There also is the middle path - to follow our predefined paths and use a bunch of templates.&lt;br /&gt;
&lt;br /&gt;
We have provided three varieties which your OXP can be. Advanced OXP creators can also combine them into a single OXP, while even more advanced creators keep them separate and then link them using dependencies. We'll cover that later.&lt;br /&gt;
&lt;br /&gt;
So what style of OXP is on your mind? Take one of the guided tours:&lt;br /&gt;
&lt;br /&gt;
*[[Create_Ship_OXP|Ship]]&lt;br /&gt;
*[[Create_Equipment_OXP|Equipment]]&lt;br /&gt;
*[[Create_Mission_OXP|Mission]]&lt;br /&gt;
&lt;br /&gt;
Alternatively, or when curious take a look at the [[OXP howto|OXP Howto]] page for full background information.&lt;br /&gt;
&lt;br /&gt;
=== OXP resources ===&lt;br /&gt;
*Here is an [[index of artefacts]] already created in OXPs.&lt;br /&gt;
*[[Documenting your artefacts]] (OXP, ships and equipment)&lt;br /&gt;
*[[OXP howto]]&lt;br /&gt;
*[[Publishing your OXP]]&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/cim--/oxp-build-scripts OXP Packaging Scripts] Cim's collection for Linux (2015)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=275434#p275434 What can OXP's ''not'' change?] (2021)&lt;br /&gt;
&lt;br /&gt;
Older OXPs (from [[User:Aegidian|Aegidian]]'s day were written in [[Legacy Scripting]]. Modern OXPs are written in JavaScript. Specifically oolite.jsVersion 185, an Oolite specific variant of '''ECMAv5'''. It is the same Spidermonkey version (1.8.5 - March 2011) that Firefox 4 shipped with many years ago, but it is a special build for Oolite. This is the version that we have almost always had and it has not changed between versions of the game. It is unlikely to change in the future (due to the [https://bb.oolite.space/viewtopic.php?p=256623#p256623 immense amount of work] involved in tampering with it!).&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
Regularly check the Oolite logfile. There are two such files in your filesystem: Latest.log and Previous.log. &lt;br /&gt;
TODO: Where exactly to find them?&lt;br /&gt;
&lt;br /&gt;
In case you see Oolite complaining about parsing problems on plist files, this usually raises the question which file Oolite was parsing at that moment. There are lots of such files, and to keep logs short that information is not printed. But you can change the logging configuration. Put a logcontrol.plist file straight into your AddOns folder and Oolite will pick it up. It can be as simple as&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        plist.information = yes;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
== Loading Order of OXPs ==&lt;br /&gt;
OXPs loaded after other OXPs will &amp;quot;trump&amp;quot; the earlier OXPs in terms of their effects on the game. It is a similar situation with the vanilla game code, where the OXPs trump or overwrite the relevant sections of the basic oolite game. &amp;lt;br&amp;gt;&lt;br /&gt;
The loading order under Macs and Windows is alphabetical, while Linux is unpredictable. There is no solution for Linux load ordering as yet ([https://bb.oolite.space/viewtopic.php?p=261821#p261821 Svengali 2018]).&lt;br /&gt;
&lt;br /&gt;
*[[Handling OXP Dependencies with JavaScript]] - how to determine the loading order&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=189416#p189416 Nested OXP's in AddOns folder] (2012)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?p=231750#p231750 Cim on the subject] (2015)&lt;br /&gt;
*[https://bb.oolite.space/viewtopic.php?f=4&amp;amp;t=8928 OXP loading order] discussion, including Ahruman on the subject (2011)&lt;br /&gt;
&lt;br /&gt;
== AddOns and Managed AddOns folders ==&lt;br /&gt;
All versions of Oolite have an AddOns folder. Only versions 1.79 (2013) and onwards have the Managed AddOns folder.&lt;br /&gt;
&lt;br /&gt;
The contents of the '''AddOns folder''' must ''not'' be zipped if they are to be recognised by Oolite - so OXZs will not work if they are in there.&lt;br /&gt;
&lt;br /&gt;
The contents of the '''Managed AddOns''' folder must contain a [[Manifest.plist]] if they are to be recognised by your [[Expansions Manager]] (or by [[Oolite Starter]]). The Expansions Manager only checks ''this'' folder, not the AddOns folder.&lt;br /&gt;
&lt;br /&gt;
== OXP Lists ==&lt;br /&gt;
*[http://www.oolite.org/oxps/ Expansion Manager OXZ list] - orderable&lt;br /&gt;
*[[OXP List]] - orderable&lt;br /&gt;
*[[Guide to Unlisted OXPs]] - with links at the bottom to older lists&lt;br /&gt;
&lt;br /&gt;
*[[Brilliant but broken...]] great oxp's that need updating/fixing... (do you have the skills?)&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite expansion packs]]&lt;br /&gt;
[[Category:Factual]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89952</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89952"/>
		<updated>2026-07-13T05:51:44Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
Oolite will get built in different scenarios: Developers obviously download the source code from the central repository, apply changes and eventually push their changes back to the repository. Likely they will not run the complete packaging for multiple operating systems. That is where the CI pipeline kicks in on Github: every push triggers a CI build which builds Oolite, performs standard tests and packages it in various formats such that it can easily be used by others. This will work for a defined set of operating systems. Distro packagers like the AUR build will create even more comfort for users by creating OS distribution specific packages. It means Oolite can be installed through the operating system's package managers.&lt;br /&gt;
&lt;br /&gt;
Below you find activity diagrams and a table explaining the purpose of each step. Note that each step may require items to already exist and on the other hand may provide output to other steps.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Plantuml-Developer.png|Developer&lt;br /&gt;
File:Plantuml-CI.png|CI (on Github)&lt;br /&gt;
File:Plantuml-AUR.png|AUR Packager&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. || configured system || working tree&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. || working tree || modified working tree&lt;br /&gt;
|-&lt;br /&gt;
| meson setup || || working tree || meson configuration files&lt;br /&gt;
|-&lt;br /&gt;
| meson compile || || meson configuration files || compiled and linked output in the build directory&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. || compiled and linked output in the build directory || nothing&lt;br /&gt;
|-&lt;br /&gt;
| meson test || runs predefined tests || compiled and linked output in the build directory || error log and return status code&lt;br /&gt;
|-&lt;br /&gt;
| meson install || copies Oolite files to another location on disk || compiled and linked output in the build directory || files in new output location&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall || reverse opertion for meson install. Removes the files from the new output location || files in new output location || nothing&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || modified working tree || unmodified working tree&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. || working tree ||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. || compiled and linked output in the build directory || the tar.gz file&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. || the tar.gz file || the AppImage&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. || the tar.gz file || the Flatpak&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. || the tar.gz file || the MSIX package&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. || the tar.gz file || the executable installer&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. || the version number || tagged git revision&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. || any kind of artifact || artifacts attached to the release on Github&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. || working tree || version used by archlinux pacman (package manager) to track installed packages&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. |||| tarball with files the application needs in a format designed for use by pacman&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. || write access on aur package repo for oolite / oolite-git package || shares recipe (PKGBUILD) to build oolite / oolite-git packages on archlinux user systems&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;builder&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.93.1-190&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;https://github.com/OoliteProject/oolite/releases/tag/1.93.1-190&amp;quot;,&lt;br /&gt;
        &amp;quot;built-at&amp;quot;: &amp;quot;2026-07-12T19:59:09+0200&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89951</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89951"/>
		<updated>2026-07-13T05:40:53Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Plantuml-Developer.png|Developer&lt;br /&gt;
File:Plantuml-CI.png|CI (on Github)&lt;br /&gt;
File:Plantuml-AUR.png|AUR Packager&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. || configured system || working tree&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. || working tree || modified working tree&lt;br /&gt;
|-&lt;br /&gt;
| meson setup || || working tree || meson configuration files&lt;br /&gt;
|-&lt;br /&gt;
| meson compile || || meson configuration files || compiled and linked output in the build directory&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. || compiled and linked output in the build directory || nothing&lt;br /&gt;
|-&lt;br /&gt;
| meson test || runs predefined tests || compiled and linked output in the build directory || error log and return status code&lt;br /&gt;
|-&lt;br /&gt;
| meson install || copies Oolite files to another location on disk || compiled and linked output in the build directory || files in new output location&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall || reverse opertion for meson install. Removes the files from the new output location || files in new output location || nothing&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || modified working tree || unmodified working tree&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. || working tree ||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. || compiled and linked output in the build directory || the tar.gz file&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. || the tar.gz file || the AppImage&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. || the tar.gz file || the Flatpak&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. || the tar.gz file || the MSIX package&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. || the tar.gz file || the executable installer&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. || the version number || tagged git revision&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. || any kind of artifact || artifacts attached to the release on Github&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. || working tree || version used by archlinux pacman (package manager) to track installed packages&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. |||| tarball with files the application needs in a format designed for use by pacman&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. || write access on aur package repo for oolite / oolite-git package || shares recipe (PKGBUILD) to build oolite / oolite-git packages on archlinux user systems&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;builder&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.93.1-190&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;https://github.com/OoliteProject/oolite/releases/tag/1.93.1-190&amp;quot;,&lt;br /&gt;
        &amp;quot;built-at&amp;quot;: &amp;quot;2026-07-12T19:59:09+0200&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Plantuml-Developer.png&amp;diff=89950</id>
		<title>File:Plantuml-Developer.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Plantuml-Developer.png&amp;diff=89950"/>
		<updated>2026-07-13T05:38:09Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Plantuml-CI.png&amp;diff=89949</id>
		<title>File:Plantuml-CI.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Plantuml-CI.png&amp;diff=89949"/>
		<updated>2026-07-13T05:37:34Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Plantuml-AUR.png&amp;diff=89948</id>
		<title>File:Plantuml-AUR.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Plantuml-AUR.png&amp;diff=89948"/>
		<updated>2026-07-13T05:36:46Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Build_system_old.png&amp;diff=89946</id>
		<title>File:Build system old.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Build_system_old.png&amp;diff=89946"/>
		<updated>2026-07-13T05:32:29Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page File:Build system.png to File:Build system old.png: We have new images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
PlantUML diagram for the build process for developers, CI and AUR distro packagers&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Build_system.png&amp;diff=89947</id>
		<title>File:Build system.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Build_system.png&amp;diff=89947"/>
		<updated>2026-07-13T05:32:29Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page File:Build system.png to File:Build system old.png: We have new images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[File:Build system old.png]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89936</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89936"/>
		<updated>2026-07-12T17:59:33Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. || configured system || working tree&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. || working tree || modified working tree&lt;br /&gt;
|-&lt;br /&gt;
| meson setup || || working tree || meson configuration files&lt;br /&gt;
|-&lt;br /&gt;
| meson compile || || meson configuration files || compiled and linked output in the build directory&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. || compiled and linked output in the build directory || nothing&lt;br /&gt;
|-&lt;br /&gt;
| meson test || runs predefined tests || compiled and linked output in the build directory || error log and return status code&lt;br /&gt;
|-&lt;br /&gt;
| meson install || copies Oolite files to another location on disk || compiled and linked output in the build directory || files in new output location&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall || reverse opertion for meson install. Removes the files from the new output location || files in new output location || nothing&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || modified working tree || unmodified working tree&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. || working tree ||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. || compiled and linked output in the build directory || the tar.gz file&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. || the tar.gz file || the AppImage&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. || the tar.gz file || the Flatpak&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. || the tar.gz file || the MSIX package&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. || the tar.gz file || the executable installer&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. || the version number || tagged git revision&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. || any kind of artifact || artifacts attached to the release on Github&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. || working tree || version used by archlinux pacman (package manager) to track installed packages&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. |||| tarball with files the application needs in a format designed for use by pacman&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. || write access on aur package repo for oolite / oolite-git package || shares recipe (PKGBUILD) to build oolite / oolite-git packages on archlinux user systems&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;builder&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;version&amp;quot;: &amp;quot;1.93.1-190&amp;quot;,&lt;br /&gt;
        &amp;quot;source&amp;quot;: &amp;quot;https://github.com/OoliteProject/oolite/releases/tag/1.93.1-190&amp;quot;,&lt;br /&gt;
        &amp;quot;built-at&amp;quot;: &amp;quot;2026-07-12T19:59:09+0200&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89935</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89935"/>
		<updated>2026-07-12T17:52:57Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. || configured system || working tree&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. || working tree || modified working tree&lt;br /&gt;
|-&lt;br /&gt;
| meson setup || || working tree || meson configuration files&lt;br /&gt;
|-&lt;br /&gt;
| meson compile || || meson configuration files || compiled and linked output in the build directory&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. || compiled and linked output in the build directory || nothing&lt;br /&gt;
|-&lt;br /&gt;
| meson test || runs predefined tests || compiled and linked output in the build directory || error log and return status code&lt;br /&gt;
|-&lt;br /&gt;
| meson install || copies Oolite files to another location on disk || compiled and linked output in the build directory || files in new output location&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall || reverse opertion for meson install. Removes the files from the new output location || files in new output location || nothing&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || modified working tree || unmodified working tree&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. || working tree ||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. || compiled and linked output in the build directory || the tar.gz file&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. || the tar.gz file || the AppImage&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. || the tar.gz file || the Flatpak&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. || the tar.gz file || the MSIX package&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. || the tar.gz file || the executable installer&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. || the version number || tagged git revision&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. || any kind of artifact || artifacts attached to the release on Github&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. || working tree || version used by archlinux pacman (package manager) to track installed packages&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. |||| tarball with files the application needs in a format designed for use by pacman&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. || write access on aur package repo for oolite / oolite-git package || shares recipe (PKGBUILD) to build oolite / oolite-git packages on archlinux user systems&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;builder&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89920</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89920"/>
		<updated>2026-07-10T14:33:25Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. || configured system || working tree&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. || working tree || modified working tree&lt;br /&gt;
|-&lt;br /&gt;
| meson setup || || working tree || meson configuration files&lt;br /&gt;
|-&lt;br /&gt;
| meson compile || || meson configuration files || compiled and linked output in the build directory&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. || compiled and linked output in the build directory || nothing&lt;br /&gt;
|-&lt;br /&gt;
| meson test || runs predefined tests || compiled and linked output in the build directory || error log and return status code&lt;br /&gt;
|-&lt;br /&gt;
| meson install || copies Oolite files to another location on disk || compiled and linked output in the build directory || files in new output location&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall || reverse opertion for meson install. Removes the files from the new output location || files in new output location || nothing&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || modified working tree || unmodified working tree&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. || working tree ||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. || compiled and linked output in the build directory || the tar.gz file&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. || the tar.gz file || the AppImage&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. || the tar.gz file || the Flatpak&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. || the tar.gz file || the MSIX package&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. || the tar.gz file || the executable installer&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. || the version number || tagged git revision&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. || any kind of artifact || artifacts attached to the release on Github&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. ||||&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. ||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;builder&amp;quot;: &amp;quot;unknown&amp;quot;,&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89919</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89919"/>
		<updated>2026-07-10T14:28:25Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. || configured system || working tree&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. || working tree || modified working tree&lt;br /&gt;
|-&lt;br /&gt;
| meson setup || || working tree || meson configuration files&lt;br /&gt;
|-&lt;br /&gt;
| meson compile || || meson configuration files || compiled and linked output in the build directory&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. || compiled and linked output in the build directory || nothing&lt;br /&gt;
|-&lt;br /&gt;
| meson test || runs predefined tests || compiled and linked output in the build directory || error log and return status code&lt;br /&gt;
|-&lt;br /&gt;
| meson install || copies Oolite files to another location on disk || compiled and linked output in the build directory || files in new output location&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall || reverse opertion for meson install. Removes the files from the new output location || files in new output location || nothing&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || modified working tree || unmodified working tree&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. || working tree ||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. || compiled and linked output in the build directory || the tar.gz file&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. || the tar.gz file || the AppImage&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. || the tar.gz file || the Flatpak&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. || the tar.gz file || the MSIX package&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. || the tar.gz file || the executable installer&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. || the version number || tagged git revision&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. || any kind of artifact || artifacts attached to the release on Github&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. ||||&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. ||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89918</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89918"/>
		<updated>2026-07-10T14:16:38Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. ||||&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. ||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. ||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || || |&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. ||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. ||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. ||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing || configured system&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. ||||&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. ||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89917</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89917"/>
		<updated>2026-07-10T14:15:56Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. || nothing ||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. ||||&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. ||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. ||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || || |&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. || nothing ||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. ||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. ||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. ||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. || nothing ||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. ||||&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. ||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89872</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89872"/>
		<updated>2026-07-09T07:23:28Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually || A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. ||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code || Clone and checkout from the Oolite git repository so it resides in the local filesystem. ||||&lt;br /&gt;
|-&lt;br /&gt;
| change code || A developer will change code in the local filesystem to whatever extent. ||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually || A developer will test manually, focusing on the changes he/she applied. ||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || || |&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically || Similar to the `configure system manually` step, in CI builds all this has to be scripted. ||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. ||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. ||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. ||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare || Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. ||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver || Checks the version tag of the local source code and transforms it from semver to an AUR package version number. ||||&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. ||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89871</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89871"/>
		<updated>2026-07-09T07:17:44Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| change code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || || |&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. ||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || The CI run will tag the version in the official repository so it is available to all other steps. ||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts || Uploads generated artifacts to a Github Release so they are available to the public. ||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
|-&lt;br /&gt;
| package || Generates the AUR package. ||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR || Pushes the AUR package into the AUR repository. ||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89870</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89870"/>
		<updated>2026-07-09T07:12:13Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| change code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes || Push the changes back into the Oolite repository. Likely involves commit and pull request actions. || || |&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number || Generates the checked out version's semver. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz || Generates an Oolite distribution as tar ball. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage || Generates a Linux AppImage. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak || Generates a Linux Flatpak image. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX || Generates a Windows installer for Oolite using MSIX. ||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS || Generates a Windows installer for Oolite using NSIS. ||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code || Tags the checked out version ||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts ||||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
|-&lt;br /&gt;
| package ||||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR ||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89869</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89869"/>
		<updated>2026-07-09T07:10:17Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| change code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes | Push the changes back into the Oolite repository. Likely involves commit and pull request actions. |||||&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number | Generates the checked out version's semver. |||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz | Generates an Oolite distribution as tar ball. |||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage | Generates a Linux AppImage. |||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak | Generates a Linux Flatpak image. |||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX | Generates a Windows installer for Oolite using MSIX. |||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS | Generates a Windows installer for Oolite using NSIS. |||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code | Tags the checked out version |||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts ||||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
|-&lt;br /&gt;
| package ||||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR ||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89868</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89868"/>
		<updated>2026-07-09T07:04:39Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure system manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| change code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes ||||||&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS ||||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts ||||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
|-&lt;br /&gt;
| package ||||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR ||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89867</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89867"/>
		<updated>2026-07-09T07:02:53Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
* [[Oolite build system]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89865</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89865"/>
		<updated>2026-07-09T07:02:08Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page The build system to Oolite build system&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure szstem manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| change code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes ||||||&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS ||||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts ||||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
|-&lt;br /&gt;
| package ||||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR ||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=The_build_system&amp;diff=89866</id>
		<title>The build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=The_build_system&amp;diff=89866"/>
		<updated>2026-07-09T07:02:08Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page The build system to Oolite build system&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Oolite build system]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89864</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89864"/>
		<updated>2026-07-09T06:30:02Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| configure szstem manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| change code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
|-&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
|-&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
|-&lt;br /&gt;
| push changes ||||||&lt;br /&gt;
|-&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
|-&lt;br /&gt;
| calculate version number ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate tar.gz ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate AppImage ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate Flatpak ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate MSIX ||||||&lt;br /&gt;
|-&lt;br /&gt;
| generate NSIS ||||||&lt;br /&gt;
|-&lt;br /&gt;
| tag source code ||||||&lt;br /&gt;
|-&lt;br /&gt;
| upload artifacts ||||||&lt;br /&gt;
|-&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
|-&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
|-&lt;br /&gt;
| package ||||||&lt;br /&gt;
|-&lt;br /&gt;
| publish on AUR ||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89863</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89863"/>
		<updated>2026-07-09T06:29:27Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example || Example&lt;br /&gt;
| configure szstem manually ||||||&lt;br /&gt;
| checkout code ||||||&lt;br /&gt;
| change code ||||||&lt;br /&gt;
| meson setup ||||||&lt;br /&gt;
| meson compile ||||||&lt;br /&gt;
| test/debug manually ||||||&lt;br /&gt;
| meson test ||||||&lt;br /&gt;
| meson install ||||||&lt;br /&gt;
| meson uninstall ||||||&lt;br /&gt;
| push changes ||||||&lt;br /&gt;
| configure system automatically ||||||&lt;br /&gt;
| calculate version number ||||||&lt;br /&gt;
| generate tar.gz ||||||&lt;br /&gt;
| generate AppImage ||||||&lt;br /&gt;
| generate Flatpak ||||||&lt;br /&gt;
| generate MSIX ||||||&lt;br /&gt;
| generate NSIS ||||||&lt;br /&gt;
| tag source code ||||||&lt;br /&gt;
| upload artifacts ||||||&lt;br /&gt;
| prepare ||||||&lt;br /&gt;
| pkgver ||||||&lt;br /&gt;
| package ||||||&lt;br /&gt;
| publish on AUR ||||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89862</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89862"/>
		<updated>2026-07-09T06:24:20Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Build Step !! Description !! Requires !! Provides&lt;br /&gt;
|-&lt;br /&gt;
| Example || Example || Example || Example&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89861</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89861"/>
		<updated>2026-07-09T06:18:02Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
[[File:Build system.png|frameless|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=File:Build_system_old.png&amp;diff=89860</id>
		<title>File:Build system old.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=File:Build_system_old.png&amp;diff=89860"/>
		<updated>2026-07-09T06:14:19Z</updated>

		<summary type="html">&lt;p&gt;Hiran: PlantUML diagram for the build process for developers, CI and AUR distro packagers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
PlantUML diagram for the build process for developers, CI and AUR distro packagers&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89859</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89859"/>
		<updated>2026-07-09T06:12:19Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89858</id>
		<title>Oolite build system</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_build_system&amp;diff=89858"/>
		<updated>2026-07-09T06:12:00Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Created page with &amp;quot;= The build system (architecture) =  Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]    # makepkg...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= The build system (architecture) =&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89857</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89857"/>
		<updated>2026-07-09T06:10:00Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
* [[The build system]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89799</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89799"/>
		<updated>2026-07-03T16:59:21Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* The build system (architecture) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# makepkg starts&lt;br /&gt;
#* install prerequisites like clang, meson, jq, ...&lt;br /&gt;
#* checkout project&lt;br /&gt;
# run prepare() function&lt;br /&gt;
#* calculate official version number (semver via gitversion)&lt;br /&gt;
# run build() function&lt;br /&gt;
#* meson setup&lt;br /&gt;
#* meson compile&lt;br /&gt;
# run check() function&lt;br /&gt;
#* meson test&lt;br /&gt;
# run package() function&lt;br /&gt;
#* meson install&lt;br /&gt;
#* Place custom icon, desktop item for use in menus, custom launcher etc at correct places&lt;br /&gt;
# create archlinux package&lt;br /&gt;
# makepkg exits&lt;br /&gt;
# runtime tests&lt;br /&gt;
# publish on AUR&lt;br /&gt;
&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89740</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89740"/>
		<updated>2026-06-30T17:02:51Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* The build system (architecture) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;,&lt;br /&gt;
        &amp;quot;expansion_catalog&amp;quot;: &amp;quot;https://addons.oolite.space/api/1.0/overview/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89739</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89739"/>
		<updated>2026-06-30T16:54:13Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* The build system (architecture) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
#* setup/configure&lt;br /&gt;
#* compile&lt;br /&gt;
#* test unpackaged&lt;br /&gt;
#* install   &amp;lt;-- why is this here?&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89632</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89632"/>
		<updated>2026-06-28T17:40:30Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* The build system (architecture) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option. Although since we updated the dependencies this example should be outdated.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;These values shall be passed in a JSON file inside the build directory. An example build file can look like this:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;title&amp;quot;: &amp;quot;Oolite core&amp;quot;,&lt;br /&gt;
        &amp;quot;identifier&amp;quot;: &amp;quot;org.oolite.oolite&amp;quot;,&lt;br /&gt;
        &amp;quot;required_oolite_version&amp;quot;: &amp;quot;1.93&amp;quot;,&lt;br /&gt;
        &amp;quot;license&amp;quot;: &amp;quot;GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details&amp;quot;,&lt;br /&gt;
        &amp;quot;author&amp;quot;: &amp;quot;Giles Williams, Jens Ayton and contributors&amp;quot;,&lt;br /&gt;
        &amp;quot;information_url&amp;quot;: &amp;quot;https://oolite.space/&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
# testing unpackaged&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89610</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89610"/>
		<updated>2026-06-27T16:45:28Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* The build system (architecture) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at [https://bb.oolite.space/viewtopic.php?p=304440 viewtopic.php?p=304440] should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
# testing unpackaged&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89609</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89609"/>
		<updated>2026-06-27T16:40:22Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* The build system (architecture) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
#* Iniialise a clean minimal build enviornmnet&amp;lt;p&amp;gt;Many issues during or after build are due to having uncessary things being present. Whether this is done through a clean chroot, docker container, VPS, github/gitlab workflow, Virtual machine etc is an implementation detail.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* download sourcecode&amp;lt;p&amp;gt;This should include oolite sourcecode as well as the code needed for external dependencies.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* install required dependencies&amp;lt;p&amp;gt;The baseline discussed at viewtopic.php?p=304440 should make this part a lot easier./p&amp;gt;&amp;lt;p&amp;gt;It includes building external deps that are not available in the build environment. Targets that use 'modern builds' for example require gnustep objc2.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;objc2 can only be built by clang, requires gnustep base and make to be built with clang. Also no released versions of gnustep tools support latest clang release (fixes are avaiiable). Targets that use the gcc provided libobjc don't have this need.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* changes to sourcecode to allow succesfull builds&amp;lt;p&amp;gt;example : 1.92-maintenance has 2 files that screw up things at runtime for some targets. Deleting those files is the only option.&amp;lt;/p&amp;gt;&lt;br /&gt;
#* set/update values that can not be determined before build time.&amp;lt;p&amp;gt;This includes things like sourcecode url, build environment, git commit hash&amp;lt;/p&amp;gt;&lt;br /&gt;
# build&lt;br /&gt;
# testing unpackaged&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89603</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89603"/>
		<updated>2026-06-26T13:08:28Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== The build system (architecture) ==&lt;br /&gt;
&lt;br /&gt;
Here is the result of this forum thread: [https://bb.oolite.space/viewtopic.php?t=22148 gitversion.sh / meson.build changes]&lt;br /&gt;
&lt;br /&gt;
# pre-build&lt;br /&gt;
# build&lt;br /&gt;
# testing unpackaged&lt;br /&gt;
# post-build&lt;br /&gt;
# packaging&lt;br /&gt;
# testing package&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Common_Testing&amp;diff=89299</id>
		<title>Common Testing</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Common_Testing&amp;diff=89299"/>
		<updated>2026-06-06T09:49:33Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:FPS report.png|right|400px]]&lt;br /&gt;
Here are some tests that can be performed regardless of the operating system.&lt;br /&gt;
&lt;br /&gt;
== Audio output ==&lt;br /&gt;
&lt;br /&gt;
Run Oolite and check whether this output works as intended:&lt;br /&gt;
* Background noise&lt;br /&gt;
* Flying/shooting&lt;br /&gt;
* Voice output&lt;br /&gt;
&lt;br /&gt;
== Performance Test ==&lt;br /&gt;
&lt;br /&gt;
The main functionality in Oolite is to process the &amp;quot;game loop&amp;quot;. This reads user input, processes the world including running all your OXP/OXZs, and then renders out the world view. For meaningful tests you need to have a repeatable base. A good metric for performance is the number of [[Frame rate|frames per second]] (FPS) that Oolite can process.&lt;br /&gt;
&lt;br /&gt;
If you want to check performance, you must check with FPS uncapped, otherwise you are always getting v-sync FPS, which is usually a low number like 60 for a 60Hz monitor, 144 for a 144Hz one ''etc''. &lt;br /&gt;
&lt;br /&gt;
Add the '''&amp;quot;animation_timer_interval&amp;quot; = x;''' in your OoliteDefaults.plist, where x is 1.0/Maximum FPS You Want To Achieve. I usually set it to 0.001 which tells Oolite to &amp;quot;go for 1000 FPS if you can&amp;quot;. Then you can compare actual performance between builds.&lt;br /&gt;
&lt;br /&gt;
Also, disable v-sync to have uncapped FPS. You do this by setting the OoliteDefaults.plist key '''&amp;quot;v-sync&amp;quot; = NO;'''.&lt;br /&gt;
&lt;br /&gt;
When comparing the performance of builds, always check with more or less the same number of entities in the system. If in one case you get 250 entities and in the other you get 70, then results may be biased (it takes much more processing power to manage the 250). Try to compare instances where the two system entity numbers are as close as possible. Shift+F shows you this info in the Oolite &amp;quot;Test Release&amp;quot; builds. Phkb wrote an expansion for that: [https://app.box.com/s/xrkkr5ylizshjng2dpc8uu9q6b39zt49 CustomPopulator.oxp.zip]. And as other OXP/OXZs may inhibit the build performance, make sure this is the only one you are running on top of a [[Vanilla game]].&lt;br /&gt;
&lt;br /&gt;
After starting Oolite, press Shift-F to show the frame rate on the screen, then fly around.&lt;br /&gt;
&lt;br /&gt;
=== Example ===&lt;br /&gt;
&lt;br /&gt;
Here in ASCII Plist format:&lt;br /&gt;
&lt;br /&gt;
 {&lt;br /&gt;
     &amp;quot;Jameson-humbletrash&amp;quot; = &amp;quot;-29624&amp;quot;;&lt;br /&gt;
     &amp;quot;animation_timer_interval&amp;quot; = &amp;quot;0.001&amp;quot;;&lt;br /&gt;
     &amp;quot;debug-settings-override&amp;quot; = {&lt;br /&gt;
     };&lt;br /&gt;
     &amp;quot;gamma-value&amp;quot; = 1;&lt;br /&gt;
     &amp;quot;v-sync&amp;quot; = no;&lt;br /&gt;
     &amp;quot;volume_control&amp;quot; = &amp;quot;0.5&amp;quot;;&lt;br /&gt;
     &amp;quot;window_height&amp;quot; = 1043;&lt;br /&gt;
     &amp;quot;window_width&amp;quot; = 1920;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or the same as XML:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;dict&amp;gt;&lt;br /&gt;
     &amp;lt;key&amp;gt;NSGlobalDomain&amp;lt;/key&amp;gt;&lt;br /&gt;
     &amp;lt;dict&amp;gt;&lt;br /&gt;
     &amp;lt;/dict&amp;gt;&lt;br /&gt;
     &amp;lt;key&amp;gt;oolite&amp;lt;/key&amp;gt;&lt;br /&gt;
     &amp;lt;dict&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;Jameson-humbletrash&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;integer&amp;gt;-29624&amp;lt;/integer&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;animation_timer_interval&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;real&amp;gt;0.001&amp;lt;/real&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;gamma-value&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;real&amp;gt;1&amp;lt;/real&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;v-sync&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;false/&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;volume_control&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;real&amp;gt;0.5&amp;lt;/real&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;window_height&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;integer&amp;gt;1043&amp;lt;/integer&amp;gt;&lt;br /&gt;
 	&amp;lt;key&amp;gt;window_width&amp;lt;/key&amp;gt;&lt;br /&gt;
 	&amp;lt;integer&amp;gt;1920&amp;lt;/integer&amp;gt;&lt;br /&gt;
     &amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;/dict&amp;gt;&lt;br /&gt;
 &amp;lt;/plist&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Note ===&lt;br /&gt;
More of the configuration file's settings are documented on the [[Hidden Settings in Oolite]] wiki page.&lt;br /&gt;
&lt;br /&gt;
== Comparison ==&lt;br /&gt;
&lt;br /&gt;
Now we need to compare several such tests in order to see patterns. To facilitate this and also communicate to others, start filling in a table like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Caption text&lt;br /&gt;
|-&lt;br /&gt;
! Oolite Version/Build/package !! Installed expansions !! Amount of entities !! screen/window size !! perceived FPS&lt;br /&gt;
|-&lt;br /&gt;
| 1.90/debug/.run || CustomPopulator || 360 || 800x600 || 70&lt;br /&gt;
|-&lt;br /&gt;
| 1.92/test/appimage  || CustomPopulator || 358 || 1024x768 || 35&lt;br /&gt;
|-&lt;br /&gt;
| 1.93/flatpak/release  || CustomPopulator || 360 || 1233x700 || 40&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Frame rate]]&lt;br /&gt;
*[[Developer's Corner]]&lt;br /&gt;
*[[User:Hiran|Hiran]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89126</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89126"/>
		<updated>2026-06-02T18:28:42Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Others */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page intends to describe where to find icons and other material, how to use them and in case of icon change lists all the places that need an update.&lt;br /&gt;
Information is based on the discussion in the [https://bb.oolite.space/viewtopic.php?t=21464&amp;amp;start=180 forum thread].&lt;br /&gt;
&lt;br /&gt;
= Icon Change =&lt;br /&gt;
&lt;br /&gt;
Currently this is just a list of locations we need to check. This may be enhanced by procedures to actually perform the changes.&lt;br /&gt;
&lt;br /&gt;
== Oolite ==&lt;br /&gt;
&lt;br /&gt;
* oolite\debian\oolite-logo1.xpm&lt;br /&gt;
* oolite\Doc\OoliteRS.odt&lt;br /&gt;
* oolite\Documentation\docs\assets\oolite-logo.png&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerHeaderBitmap_ModernUI.bmp&lt;br /&gt;
* oolite\installers\win32\Oolite.ico&lt;br /&gt;
* oolite\installers\win32\Oolite-HDR.ico&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerFinishpageBitmap.bmp&lt;br /&gt;
* oolite\Resources\Images\splash@2x.png&lt;br /&gt;
* oolite\Resources\Images\WMicon.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.png&lt;br /&gt;
&lt;br /&gt;
== Debug Console ==&lt;br /&gt;
&lt;br /&gt;
* oolite-debug-console\images\OoJSC.icns&lt;br /&gt;
* oolite-debug-console\images\OoJSC.ico&lt;br /&gt;
* oolite-debug-console\images\OoJSC16x16.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC24x24.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC32x32.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC48x48.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC64x64.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC96x96.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC128x128.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC192x192.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC256x256.png&lt;br /&gt;
&lt;br /&gt;
== Oolite Starter ==&lt;br /&gt;
&lt;br /&gt;
* OoliteStarter/src/main/resources/icons/32px-Oolite-oxp-icon.png&lt;br /&gt;
* OoliteStarter/src/main/resources/icons/OoliteIcon24.png&lt;br /&gt;
* OoliteStarter/src/main/resources/images/Mr_Gimlet_Oolite.png&lt;br /&gt;
* OoliteStarter/src/main/resources/oolite_logo.ico&lt;br /&gt;
* OoliteStarter/src/main/resources/oolite_logo.png&lt;br /&gt;
&lt;br /&gt;
== Wiki ==&lt;br /&gt;
* the logo on the wiki (top left of every page)&lt;br /&gt;
* the logo on the wiki (gray icon on the main page)&lt;br /&gt;
* the logo on the wiki (colored icon on the main oolite page)&lt;br /&gt;
* the favicon on the wiki&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* the logo on oolite.space (updates to the only-static and only-media branches in oolite-web)&lt;br /&gt;
* the favicon on oolite.space&lt;br /&gt;
* the logo on bb.oolite.space&lt;br /&gt;
* the favicon on bb.oolite.space&lt;br /&gt;
* the logo in the Microsoft Store&lt;br /&gt;
* the logo in the FlatHub&lt;br /&gt;
* Is there a central repository for AppImages? If so, there.&lt;br /&gt;
* the logo on the GitHub site.OoliteStarter/&lt;br /&gt;
&lt;br /&gt;
= Related = &lt;br /&gt;
&lt;br /&gt;
See also [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89061</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89061"/>
		<updated>2026-05-31T09:51:17Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Oolite Starter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page intends to describe where to find icons and other material, how to use them and in case of icon change lists all the places that need an update.&lt;br /&gt;
Information is based on the discussion in the [https://bb.oolite.space/viewtopic.php?t=21464&amp;amp;start=180 forum thread].&lt;br /&gt;
&lt;br /&gt;
= Icon Change =&lt;br /&gt;
&lt;br /&gt;
Currently this is just a list of locations we need to check. This may be enhanced by procedures to actually perform the changes.&lt;br /&gt;
&lt;br /&gt;
== Oolite ==&lt;br /&gt;
&lt;br /&gt;
* oolite\debian\oolite-logo1.xpm&lt;br /&gt;
* oolite\Doc\OoliteRS.odt&lt;br /&gt;
* oolite\Documentation\docs\assets\oolite-logo.png&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerHeaderBitmap_ModernUI.bmp&lt;br /&gt;
* oolite\installers\win32\Oolite.ico&lt;br /&gt;
* oolite\installers\win32\Oolite-HDR.ico&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerFinishpageBitmap.bmp&lt;br /&gt;
* oolite\Resources\Images\splash@2x.png&lt;br /&gt;
* oolite\Resources\Images\WMicon.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.png&lt;br /&gt;
&lt;br /&gt;
== Debug Console ==&lt;br /&gt;
&lt;br /&gt;
* oolite-debug-console\images\OoJSC.icns&lt;br /&gt;
* oolite-debug-console\images\OoJSC.ico&lt;br /&gt;
* oolite-debug-console\images\OoJSC16x16.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC24x24.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC32x32.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC48x48.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC64x64.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC96x96.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC128x128.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC192x192.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC256x256.png&lt;br /&gt;
&lt;br /&gt;
== Oolite Starter ==&lt;br /&gt;
&lt;br /&gt;
* OoliteStarter/src/main/resources/icons/32px-Oolite-oxp-icon.png&lt;br /&gt;
* OoliteStarter/src/main/resources/icons/OoliteIcon24.png&lt;br /&gt;
* OoliteStarter/src/main/resources/images/Mr_Gimlet_Oolite.png&lt;br /&gt;
* OoliteStarter/src/main/resources/oolite_logo.ico&lt;br /&gt;
* OoliteStarter/src/main/resources/oolite_logo.png&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* the logo on oolite.space (updates to the only-static and only-media branches in oolite-web)&lt;br /&gt;
* the favicon on oolite.space&lt;br /&gt;
* the logo on bb.oolite.space&lt;br /&gt;
* the favicon on bb.oolite.space&lt;br /&gt;
* the logo in the Microsoft Store&lt;br /&gt;
* the logo in the FlatHub&lt;br /&gt;
* Is there a central repository for AppImages? If so, there.&lt;br /&gt;
* the logo on the GitHub site.OoliteStarter/&lt;br /&gt;
* the logo on the wiki &lt;br /&gt;
* the favicon on the wiki&lt;br /&gt;
&lt;br /&gt;
= Related = &lt;br /&gt;
&lt;br /&gt;
See also [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89060</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89060"/>
		<updated>2026-05-31T09:51:09Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Debug Console */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page intends to describe where to find icons and other material, how to use them and in case of icon change lists all the places that need an update.&lt;br /&gt;
Information is based on the discussion in the [https://bb.oolite.space/viewtopic.php?t=21464&amp;amp;start=180 forum thread].&lt;br /&gt;
&lt;br /&gt;
= Icon Change =&lt;br /&gt;
&lt;br /&gt;
Currently this is just a list of locations we need to check. This may be enhanced by procedures to actually perform the changes.&lt;br /&gt;
&lt;br /&gt;
== Oolite ==&lt;br /&gt;
&lt;br /&gt;
* oolite\debian\oolite-logo1.xpm&lt;br /&gt;
* oolite\Doc\OoliteRS.odt&lt;br /&gt;
* oolite\Documentation\docs\assets\oolite-logo.png&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerHeaderBitmap_ModernUI.bmp&lt;br /&gt;
* oolite\installers\win32\Oolite.ico&lt;br /&gt;
* oolite\installers\win32\Oolite-HDR.ico&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerFinishpageBitmap.bmp&lt;br /&gt;
* oolite\Resources\Images\splash@2x.png&lt;br /&gt;
* oolite\Resources\Images\WMicon.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.png&lt;br /&gt;
&lt;br /&gt;
== Debug Console ==&lt;br /&gt;
&lt;br /&gt;
* oolite-debug-console\images\OoJSC.icns&lt;br /&gt;
* oolite-debug-console\images\OoJSC.ico&lt;br /&gt;
* oolite-debug-console\images\OoJSC16x16.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC24x24.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC32x32.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC48x48.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC64x64.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC96x96.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC128x128.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC192x192.png&lt;br /&gt;
* oolite-debug-console\images\OoJSC256x256.png&lt;br /&gt;
&lt;br /&gt;
== Oolite Starter ==&lt;br /&gt;
&lt;br /&gt;
OoliteStarter/src/main/resources/icons/32px-Oolite-oxp-icon.png&lt;br /&gt;
OoliteStarter/src/main/resources/icons/OoliteIcon24.png&lt;br /&gt;
OoliteStarter/src/main/resources/images/Mr_Gimlet_Oolite.png&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.ico&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.png&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* the logo on oolite.space (updates to the only-static and only-media branches in oolite-web)&lt;br /&gt;
* the favicon on oolite.space&lt;br /&gt;
* the logo on bb.oolite.space&lt;br /&gt;
* the favicon on bb.oolite.space&lt;br /&gt;
* the logo in the Microsoft Store&lt;br /&gt;
* the logo in the FlatHub&lt;br /&gt;
* Is there a central repository for AppImages? If so, there.&lt;br /&gt;
* the logo on the GitHub site.OoliteStarter/&lt;br /&gt;
* the logo on the wiki &lt;br /&gt;
* the favicon on the wiki&lt;br /&gt;
&lt;br /&gt;
= Related = &lt;br /&gt;
&lt;br /&gt;
See also [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89059</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89059"/>
		<updated>2026-05-31T09:50:56Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Oolite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page intends to describe where to find icons and other material, how to use them and in case of icon change lists all the places that need an update.&lt;br /&gt;
Information is based on the discussion in the [https://bb.oolite.space/viewtopic.php?t=21464&amp;amp;start=180 forum thread].&lt;br /&gt;
&lt;br /&gt;
= Icon Change =&lt;br /&gt;
&lt;br /&gt;
Currently this is just a list of locations we need to check. This may be enhanced by procedures to actually perform the changes.&lt;br /&gt;
&lt;br /&gt;
== Oolite ==&lt;br /&gt;
&lt;br /&gt;
* oolite\debian\oolite-logo1.xpm&lt;br /&gt;
* oolite\Doc\OoliteRS.odt&lt;br /&gt;
* oolite\Documentation\docs\assets\oolite-logo.png&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerHeaderBitmap_ModernUI.bmp&lt;br /&gt;
* oolite\installers\win32\Oolite.ico&lt;br /&gt;
* oolite\installers\win32\Oolite-HDR.ico&lt;br /&gt;
* oolite\installers\win32\OoliteInstallerFinishpageBitmap.bmp&lt;br /&gt;
* oolite\Resources\Images\splash@2x.png&lt;br /&gt;
* oolite\Resources\Images\WMicon.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.bmp&lt;br /&gt;
* oolite\Resources\Images\splash.png&lt;br /&gt;
&lt;br /&gt;
== Debug Console ==&lt;br /&gt;
&lt;br /&gt;
oolite-debug-console\images\OoJSC.icns&lt;br /&gt;
oolite-debug-console\images\OoJSC.ico&lt;br /&gt;
oolite-debug-console\images\OoJSC16x16.png&lt;br /&gt;
oolite-debug-console\images\OoJSC24x24.png&lt;br /&gt;
oolite-debug-console\images\OoJSC32x32.png&lt;br /&gt;
oolite-debug-console\images\OoJSC48x48.png&lt;br /&gt;
oolite-debug-console\images\OoJSC64x64.png&lt;br /&gt;
oolite-debug-console\images\OoJSC96x96.png&lt;br /&gt;
oolite-debug-console\images\OoJSC128x128.png&lt;br /&gt;
oolite-debug-console\images\OoJSC192x192.png&lt;br /&gt;
oolite-debug-console\images\OoJSC256x256.png&lt;br /&gt;
&lt;br /&gt;
== Oolite Starter ==&lt;br /&gt;
&lt;br /&gt;
OoliteStarter/src/main/resources/icons/32px-Oolite-oxp-icon.png&lt;br /&gt;
OoliteStarter/src/main/resources/icons/OoliteIcon24.png&lt;br /&gt;
OoliteStarter/src/main/resources/images/Mr_Gimlet_Oolite.png&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.ico&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.png&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* the logo on oolite.space (updates to the only-static and only-media branches in oolite-web)&lt;br /&gt;
* the favicon on oolite.space&lt;br /&gt;
* the logo on bb.oolite.space&lt;br /&gt;
* the favicon on bb.oolite.space&lt;br /&gt;
* the logo in the Microsoft Store&lt;br /&gt;
* the logo in the FlatHub&lt;br /&gt;
* Is there a central repository for AppImages? If so, there.&lt;br /&gt;
* the logo on the GitHub site.OoliteStarter/&lt;br /&gt;
* the logo on the wiki &lt;br /&gt;
* the favicon on the wiki&lt;br /&gt;
&lt;br /&gt;
= Related = &lt;br /&gt;
&lt;br /&gt;
See also [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89058</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89058"/>
		<updated>2026-05-31T09:50:35Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Others */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page intends to describe where to find icons and other material, how to use them and in case of icon change lists all the places that need an update.&lt;br /&gt;
Information is based on the discussion in the [https://bb.oolite.space/viewtopic.php?t=21464&amp;amp;start=180 forum thread].&lt;br /&gt;
&lt;br /&gt;
= Icon Change =&lt;br /&gt;
&lt;br /&gt;
Currently this is just a list of locations we need to check. This may be enhanced by procedures to actually perform the changes.&lt;br /&gt;
&lt;br /&gt;
== Oolite ==&lt;br /&gt;
&lt;br /&gt;
oolite\debian\oolite-logo1.xpm&lt;br /&gt;
oolite\Doc\OoliteRS.odt&lt;br /&gt;
oolite\Documentation\docs\assets\oolite-logo.png&lt;br /&gt;
oolite\installers\win32\OoliteInstallerHeaderBitmap_ModernUI.bmp&lt;br /&gt;
oolite\installers\win32\Oolite.ico&lt;br /&gt;
oolite\installers\win32\Oolite-HDR.ico&lt;br /&gt;
oolite\installers\win32\OoliteInstallerFinishpageBitmap.bmp&lt;br /&gt;
oolite\Resources\Images\splash@2x.png&lt;br /&gt;
oolite\Resources\Images\WMicon.bmp&lt;br /&gt;
oolite\Resources\Images\splash.bmp&lt;br /&gt;
oolite\Resources\Images\splash.png&lt;br /&gt;
&lt;br /&gt;
== Debug Console ==&lt;br /&gt;
&lt;br /&gt;
oolite-debug-console\images\OoJSC.icns&lt;br /&gt;
oolite-debug-console\images\OoJSC.ico&lt;br /&gt;
oolite-debug-console\images\OoJSC16x16.png&lt;br /&gt;
oolite-debug-console\images\OoJSC24x24.png&lt;br /&gt;
oolite-debug-console\images\OoJSC32x32.png&lt;br /&gt;
oolite-debug-console\images\OoJSC48x48.png&lt;br /&gt;
oolite-debug-console\images\OoJSC64x64.png&lt;br /&gt;
oolite-debug-console\images\OoJSC96x96.png&lt;br /&gt;
oolite-debug-console\images\OoJSC128x128.png&lt;br /&gt;
oolite-debug-console\images\OoJSC192x192.png&lt;br /&gt;
oolite-debug-console\images\OoJSC256x256.png&lt;br /&gt;
&lt;br /&gt;
== Oolite Starter ==&lt;br /&gt;
&lt;br /&gt;
OoliteStarter/src/main/resources/icons/32px-Oolite-oxp-icon.png&lt;br /&gt;
OoliteStarter/src/main/resources/icons/OoliteIcon24.png&lt;br /&gt;
OoliteStarter/src/main/resources/images/Mr_Gimlet_Oolite.png&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.ico&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.png&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
* the logo on oolite.space (updates to the only-static and only-media branches in oolite-web)&lt;br /&gt;
* the favicon on oolite.space&lt;br /&gt;
* the logo on bb.oolite.space&lt;br /&gt;
* the favicon on bb.oolite.space&lt;br /&gt;
* the logo in the Microsoft Store&lt;br /&gt;
* the logo in the FlatHub&lt;br /&gt;
* Is there a central repository for AppImages? If so, there.&lt;br /&gt;
* the logo on the GitHub site.OoliteStarter/&lt;br /&gt;
* the logo on the wiki &lt;br /&gt;
* the favicon on the wiki&lt;br /&gt;
&lt;br /&gt;
= Related = &lt;br /&gt;
&lt;br /&gt;
See also [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89057</id>
		<title>Developer's Corner</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Developer%27s_Corner&amp;diff=89057"/>
		<updated>2026-05-31T09:49:06Z</updated>

		<summary type="html">&lt;p&gt;Hiran: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here you will find information that helps understanding the Oolite source code, build and test the project.&lt;br /&gt;
&lt;br /&gt;
* [[Contributing to the project]]&lt;br /&gt;
* [[Release Process]]&lt;br /&gt;
* [[Branding]], [[Branding History]]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Oolite API documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/ Doxygen Documentation]&lt;br /&gt;
* [https://ooliteproject.github.io/oolite/coverage/index.html Code Coverage Report]&lt;br /&gt;
* [[Cross Platform IDEs]]&lt;br /&gt;
* [[Compiling with Clang instead of gcc]] (Windows/Linux)&lt;br /&gt;
&lt;br /&gt;
== OS Specific parts ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Operating System dependent stuff&lt;br /&gt;
|-&lt;br /&gt;
! Procedure !! Apple Mac !! Linux !! Windows&lt;br /&gt;
|-&lt;br /&gt;
| Setting up a development environment || [[Development on Apple Mac]], [[Cross Platform IDEs]] || [[Development on Linux]], [[Cross Platform IDEs]] || [[Development on Windows]], [[Cross Platform IDEs]]&lt;br /&gt;
|-&lt;br /&gt;
| Compiling || [[Compiling on Apple Mac]] || [[Compiling on Linux]] || [[Developing Oolite#On_Windows_2 | Compiling on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Testing || [[Testing on Apple Mac]], [[Common Testing]] || [[Testing on Linux]], [[Common Testing]] || [[Testing on Windows]], [[Common Testing]]&lt;br /&gt;
|-&lt;br /&gt;
| Packaging into Installer || [[Installer on Apple Mac]] || [[Installer on Linux]] || [[Installer on Windows]]&lt;br /&gt;
|-&lt;br /&gt;
| Running                  || [[Running Oolite-Mac]] || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Releasing the code==&lt;br /&gt;
&lt;br /&gt;
Once you developed a while you might no longer be happy that all you have created is called 'nightly' or 'prerelease' or 'unstable'.&lt;br /&gt;
&lt;br /&gt;
If you are convinced the current status should be published as 'stable' or 'release', follow the [[Oolite Release Process]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite Development]]&lt;br /&gt;
&lt;br /&gt;
== Hints ==&lt;br /&gt;
&lt;br /&gt;
The code is organized across several git repositories. The main one refers to the others as submodules - but always to a concise commit.&lt;br /&gt;
&lt;br /&gt;
If you need to update submodules you also need to tell people to update the reference in the main repository. Here you can see that handling submodules can lead to strange effects: https://bb.oolite.space/viewtopic.php?f=3&amp;amp;t=21470&lt;br /&gt;
&lt;br /&gt;
To learn mode about submodules read the fine manual at https://git-scm.com/book/en/v2/Git-Tools-Submodules&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89056</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89056"/>
		<updated>2026-05-31T09:48:27Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Removed redirect to Branding History&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page intends to describe where to find icons and other material, how to use them and in case of icon change lists all the places that need an update.&lt;br /&gt;
Information is based on the discussion in the [https://bb.oolite.space/viewtopic.php?t=21464&amp;amp;start=180 forum thread].&lt;br /&gt;
&lt;br /&gt;
= Icon Change =&lt;br /&gt;
&lt;br /&gt;
Currently this is just a list of locations we need to check. This may be enhanced by procedures to actually perform the changes.&lt;br /&gt;
&lt;br /&gt;
== Oolite ==&lt;br /&gt;
&lt;br /&gt;
oolite\debian\oolite-logo1.xpm&lt;br /&gt;
oolite\Doc\OoliteRS.odt&lt;br /&gt;
oolite\Documentation\docs\assets\oolite-logo.png&lt;br /&gt;
oolite\installers\win32\OoliteInstallerHeaderBitmap_ModernUI.bmp&lt;br /&gt;
oolite\installers\win32\Oolite.ico&lt;br /&gt;
oolite\installers\win32\Oolite-HDR.ico&lt;br /&gt;
oolite\installers\win32\OoliteInstallerFinishpageBitmap.bmp&lt;br /&gt;
oolite\Resources\Images\splash@2x.png&lt;br /&gt;
oolite\Resources\Images\WMicon.bmp&lt;br /&gt;
oolite\Resources\Images\splash.bmp&lt;br /&gt;
oolite\Resources\Images\splash.png&lt;br /&gt;
&lt;br /&gt;
== Debug Console ==&lt;br /&gt;
&lt;br /&gt;
oolite-debug-console\images\OoJSC.icns&lt;br /&gt;
oolite-debug-console\images\OoJSC.ico&lt;br /&gt;
oolite-debug-console\images\OoJSC16x16.png&lt;br /&gt;
oolite-debug-console\images\OoJSC24x24.png&lt;br /&gt;
oolite-debug-console\images\OoJSC32x32.png&lt;br /&gt;
oolite-debug-console\images\OoJSC48x48.png&lt;br /&gt;
oolite-debug-console\images\OoJSC64x64.png&lt;br /&gt;
oolite-debug-console\images\OoJSC96x96.png&lt;br /&gt;
oolite-debug-console\images\OoJSC128x128.png&lt;br /&gt;
oolite-debug-console\images\OoJSC192x192.png&lt;br /&gt;
oolite-debug-console\images\OoJSC256x256.png&lt;br /&gt;
&lt;br /&gt;
== Oolite Starter ==&lt;br /&gt;
&lt;br /&gt;
OoliteStarter/src/main/resources/icons/32px-Oolite-oxp-icon.png&lt;br /&gt;
OoliteStarter/src/main/resources/icons/OoliteIcon24.png&lt;br /&gt;
OoliteStarter/src/main/resources/images/Mr_Gimlet_Oolite.png&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.ico&lt;br /&gt;
OoliteStarter/src/main/resources/oolite_logo.png&lt;br /&gt;
&lt;br /&gt;
== Others ==&lt;br /&gt;
&lt;br /&gt;
- the logo on oolite.space (updates to the only-static and only-media branches in oolite-web)&lt;br /&gt;
- the favicon on oolite.space&lt;br /&gt;
- the logo on bb.oolite.space&lt;br /&gt;
- the favicon on bb.oolite.space&lt;br /&gt;
- the logo in the Microsoft Store&lt;br /&gt;
- the logo in the FlatHub&lt;br /&gt;
- Is there a central repository for AppImages? If so, there.&lt;br /&gt;
- the logo on the GitHub site.OoliteStarter/&lt;br /&gt;
- the logo on the wiki &lt;br /&gt;
- the favicon on the wiki &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Related = &lt;br /&gt;
&lt;br /&gt;
See also [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Talk:Branding_History&amp;diff=89054</id>
		<title>Talk:Branding History</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Talk:Branding_History&amp;diff=89054"/>
		<updated>2026-05-31T09:37:32Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page Talk:Branding to Talk:Branding History: Name to better match the page's purpose&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Would it possible to attach all previous logos, icons, fonts ''etc''. to this page, or, at least, hyperlink on this page to repositories of all previous resource materials (with associated dates of having been in use, and record of first introduction/reveal) in this regard? Would it be possible to have this page be the dated, historical record of ''Oolite'' branding development and progression?&lt;br /&gt;
&lt;br /&gt;
Example: [https://www.livejournal.com/allpics.bml?user=oolite ''Oolite (progress)'' LiveJournal Userpic] 2004apr07tue - ??? ([https://oolite.livejournal.com/profile proof of start-date])&lt;br /&gt;
&lt;br /&gt;
My concern is that even on the initial 2006-01-03T18:26:46 post of the [https://wiki.alioth.net/index.php?title=Oolite&amp;amp;oldid=1294 ''Oolite''] wikipage, the original, blue logo (in use at the time of the initial posting of that page) has now been replaced by the new, red logo.&lt;br /&gt;
&lt;br /&gt;
Let not our origins be forgotten, as happens to the location of Old Earth in GalCop Space! ...nor as happened during the [https://wiki.alioth.net/index.php/Great_Deletion Great Deletion].&lt;br /&gt;
&lt;br /&gt;
Thanks for your consideration of this request.&lt;br /&gt;
&lt;br /&gt;
--[[User:User2357|User2357]] ([[User talk:User2357|talk]]) 11:08, 4 January 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thy eminence,&lt;br /&gt;
&lt;br /&gt;
Phkb uploaded the new logo with the name of the old.&lt;br /&gt;
&lt;br /&gt;
But. If you ''look'' at the ''pages'' with the files on them (if that is the correct description) you will see that the original is still there, somehow: [[:File:Oolite-logo3.png]] &amp;amp; [[:File:Oolite-logo2.png]].&lt;br /&gt;
&lt;br /&gt;
Despite my supposed wizardly capabilities, I know not how to emblazon Seventh's original logo on another page here.&lt;br /&gt;
&lt;br /&gt;
I beg, sir, to remain yours ''etc''.,&lt;br /&gt;
&lt;br /&gt;
:''Cholmondeley 21:46, 4 January 2024 (UTC)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Woo-hoo! Yee-Haw! Yippee-hi-ho-kah-yay! :D I thought those files had been lost. Thank you, Commander Cholmondeley. I'm no wiki-wizard either, but I'll have a go at it.&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
If I understand correctly, could the new, red-logo filenames perhaps be renamed differently, so that they do not clash with the original, blue-logo filenames, and, thus, hopefully, restore the blue logos on historical pages where they belong, and add the red ones to new pages? ...or am I not grasping the full complexity of the situation?&lt;br /&gt;
&lt;br /&gt;
Commander Cholmondeley, on the Branding wikipage, you refer to File:Oosat 1.png, File:Oosat 2.png, and http://s248731467.onlinehome.us/ ... I agree that Oosat 2.png seems to be logoless, but it also seems to me to be unclear whether the Oosat site/pages were ever supposed to have any official ''Oolite'' logos in the first place that might require preservation. Oosat 1.png has an Elite Wiki logo in the bottom, left-hand corner, but I don't think that's what we're looking for...?&lt;br /&gt;
&lt;br /&gt;
Also, on the Dizzy's ''Oolite'' Installers download page, that logo seems somewhat less &amp;quot;official&amp;quot;, and might merely have been one that Dizzy designed for their own, personal purposes on their own, personal website; not necessarily to represent the ''Oolite'' comOonity as a whole. It does not seem as if it was ever a logo to be considered for display on any official ''Oolite'' website.&lt;br /&gt;
&lt;br /&gt;
What I have in mind, is the preservation of the original logo(s) that Aegidian designed, and used on his websites/pages, and which might be more-closely compared to the ''Elite'' insignia designed by Philip Castle ([https://www.frontierastro.co.uk/Files/elite_misc.html]). The new, red logo seems to follow this tradition rather nicely, and, since the commOonity was consulted on the ''Oolite'' bulletin boards, and the red logo was incorporated on the official ''Oolite''.space website, I would think that few would argue against the red logo's right to preservation.&lt;br /&gt;
&lt;br /&gt;
Attempting to preserve a file for every single ''Oolite'' logo out there, might not be practical and exhaustible/exhaustive; there will always be another one that we haven't included yet, and that is simply just more frustration than I am willing to sign up for. ...But ''official'' logos from original media... now those I'm willing to hunt down to the ends of the Earth. (...says I, not knowing what I'm getting myself into...)&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
I'll have to speak to my landlord regarding letting you be mine. He's not big on pets. Perhaps I can persuade him to let you stay in the basement. ''etc''. ;p (How am I ever to top such wonderfully-flowery language?)&lt;br /&gt;
&lt;br /&gt;
--[[User:User2357|User2357]] ([[User talk:User2357|talk]]) 13:09, 7 January 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I would recommend that the two resolutions of the new, red logo be renamed Oolite-logo4-128.png and Oolite-logo4-256.png respectively.&lt;br /&gt;
&lt;br /&gt;
How to get the Elite Wiki to display those, though, in stead of Oolite-logo3.png... I  wouldn't know.&lt;br /&gt;
&lt;br /&gt;
Hiran, in your original post of the Branding wikipage, you mentioned fonts... Which fonts did you have in mind? Where can those be obtained?&lt;br /&gt;
&lt;br /&gt;
--[[User:User2357|User2357]] ([[User talk:User2357|talk]]) 04:28, 8 January 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Our past wiki-wizards were [[User:Winston|Winston]] (who set this up as the &amp;quot;Elite Wiki&amp;quot; back in the days before Oolite - hence our all-inclusive [[Main Page]] - and who still pays for it) and [[User:Maik|Maik]]. Both are programmers and both ''understand'' it. I merely have learned how to do a few things with it.&lt;br /&gt;
&lt;br /&gt;
Phkb (also a programmer) uploaded the new logo into the &amp;quot;name-space&amp;quot; (if that is what it is) of the old. So every use of the old was replaced automatically by the use of the new without needing to manually tweak each and every one of them.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 '''Use of dates on history-tab pages'''&lt;br /&gt;
 I ''presume'' that (on the logo's &amp;quot;file:&amp;quot; page) clicking on the ''old'' date gives you the ''old'' logo file which you can then download and re-upload with a new name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 '''Notice the use of brackets in linking.'''&lt;br /&gt;
 &lt;br /&gt;
 '''Single brackets''' for website pages. Uses a ''space'' ( ) to rename&lt;br /&gt;
 '''Double brackets''' for wiki pages (avoids the little icon and avoids need for entire web address). Uses a ''pipe'' (|) to rename.&lt;br /&gt;
 &lt;br /&gt;
 And you can do other things with pipes (in linking to User: pages). And with colons (in linking to Category: pages).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 '''Dealing with &amp;quot;Category&amp;quot; pages can be complex.'''&lt;br /&gt;
 &lt;br /&gt;
 The [[:Category:Lore]] page has sub-categories. And a linked [[Lore]] wiki page which appears at the top of the page list, not in the alphabetical ordering. ''If you examine the &amp;quot;Category&amp;quot; tags on each of those linked pages you should be able to work out how all this was done.''&lt;br /&gt;
 &lt;br /&gt;
 Note that the addition of the colon to Category:Lore (-&amp;gt; :Category:Lore) immediately above. That prevents this talk page also being tagged with the Lore category and merely links to that page instead.&lt;br /&gt;
 &lt;br /&gt;
 You might find it helpful to browse the [[Special:Categories|list of categories]] and try and make sense of them.&lt;br /&gt;
 &lt;br /&gt;
 [[User:Debresser|Debresser]] seems to have spent quite some time pruning the categories to make more sense. I've not done so as I don't yet feel that I have the knowledge to do a decent job.&lt;br /&gt;
&lt;br /&gt;
 The point of these pages seems to be &amp;quot;easy&amp;quot; indexing - where you include a page in an index by merely tagging it, rather than having to manually update an index each time the page changes (as would need to be done with my various manually collated lists of relevant OXPs dotted around this wiki).&lt;br /&gt;
&lt;br /&gt;
:''Cholmondeley 10:15, 8 January 2024 (UTC)''&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proposal: I am willing to delete the new, red logo image-files from the ''Elite'' Wiki, rename the highest-resolution version to &amp;quot;''Oolite''-logo4.png&amp;quot;, re-upload it, and then edit and replace every single last little hyperlink to ''Oolite''-logo2.png and ''Oolite''-logo3.png in the '''entire''' ''Elite'' Wiki -- on all of five ''other'' hyperlinking wikipages. ;) (Only the highest-resolution version is required, since the ''Elite'' Wiki apparently has the capability to scale images.)&lt;br /&gt;
&lt;br /&gt;
[https://wiki.alioth.net/index.php/Special:WhatLinksHere/File:Oolite-logo2.png Pages that link to ''Oolite''-logo2.png]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.alioth.net/index.php/Special:WhatLinksHere/File:Oolite-logo3.png Pages that link to ''Oolite''-logo3.png]&lt;br /&gt;
&lt;br /&gt;
Howzat? Would this be acceptable to all? :)&lt;br /&gt;
&lt;br /&gt;
(Then we would be able show all the historical logo-images on this Branding page as well, in stead of merely hyperlinking to the source-file pages. :D )&lt;br /&gt;
&lt;br /&gt;
--[[User:User2357|User2357]] ([[User talk:User2357|talk]]) 07:27, 10 January 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file-delete option that I thought I saw previously, apparently is not available to me (anymore?)... There goes my perfect plan in the pants! :/&lt;br /&gt;
&lt;br /&gt;
This was now discovered after uploading a new version of one of the logo-image files I had uploaded recently, and the new version of the image NOT being replaced into the location where the file is called... This is frustrating. ...when functionality apparently does not function as it is supposedly supposed to. Hm. :/&lt;br /&gt;
&lt;br /&gt;
--[[User:User2357|User2357]] ([[User talk:User2357|talk]]) 06:29, 15 January 2024 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to speak with Maik (if he has any spare time) about deletion - he understands how it works, and understands rather more about how this wiki works than I do. I'm unhappy to delete something when I don't understand what the consequences are - and I don't. Look what happened when Hiran started deleting stuff on GitHub a couple of months ago - and he's a professional programmer! (https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21457)&lt;br /&gt;
&lt;br /&gt;
::''Cholmondeley 08:55, 15 January 2024 (UTC)''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nah. I don't think I'll bother Maik.&lt;br /&gt;
&lt;br /&gt;
The interface is less than what is optimal for all our spare times, at the moment.&lt;br /&gt;
&lt;br /&gt;
Been looking at fandom.com a bit... Not sure if their copyleft policy clashes with any ''Oolite'' licensing, though.&lt;br /&gt;
&lt;br /&gt;
On the other hand, (1) the ''Elite'' Wiki is here at alioth.net already (thanks to Dylan Smith); (2) migrating it... huge job, methinks; (3) not sure exactly why the grass seems greener on the other side, but it might be, as is usual, because of more plentiful manure... :/&lt;br /&gt;
&lt;br /&gt;
I guess what I'm saying, is: should the alioth.net ''Elite'' Wiki ''ever'' become borked beyond all practicality anymore, fandom.com might be an alternative that could be considered. In the meanwhile, let's keep what we know we've got.&lt;br /&gt;
&lt;br /&gt;
--[[User:User2357|User2357]] ([[User talk:User2357|talk]]) 13:36, 19 January 2024 (UTC)&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Talk:Branding&amp;diff=89055</id>
		<title>Talk:Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Talk:Branding&amp;diff=89055"/>
		<updated>2026-05-31T09:37:32Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page Talk:Branding to Talk:Branding History: Name to better match the page's purpose&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Talk:Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding_History&amp;diff=89052</id>
		<title>Branding History</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding_History&amp;diff=89052"/>
		<updated>2026-05-31T09:37:31Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page Branding to Branding History: Name to better match the page's purpose&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Oolite-logo3.png|right]]&lt;br /&gt;
= Introduction =&lt;br /&gt;
This page attempts to record and preserve the historical heritage of ''Elite''/''Oolite'' branding, specifically in terms of logos, icons and fonts. [https://frontierastro.co.uk/ FrontierAstro] is very useful in this regard.&lt;br /&gt;
&lt;br /&gt;
Fonts came up from the OpenOffice documentation (Reference Sheet, etc.) that is distributed in PDF format. As soon as the PDFs were generated using open-source software only, it became apparent that the documents were based on fonts only available in Microsoft Windows operating systems. From that moment on, alternatives had to be found.&lt;br /&gt;
&lt;br /&gt;
This page focuses on ''Elite'' (and its descendant ''Oolite'') since (1) it is the origin of all the related brands, (2) and it has had a multitude of different versions, many of them introducing variations on the theme, while (3) the ''Frontier'' games do not seem to have had any significant brand-variations along the way. For completeness, though, the ''Frontier'' logos and icons will also be included, but [https://duckduckgo.com/?q=elite+dangerous+logos&amp;amp;va=p&amp;amp;atb=v355-1&amp;amp;iax=images&amp;amp;ia=images ''Elite: Dangerous''] has an impractically-large amount of branding for the purposes of the simple historical-record intended here.&lt;br /&gt;
&lt;br /&gt;
= ''Elite'' branding history =&lt;br /&gt;
1984... [[Classic_Elite|Elite]]... [[David Braben]], [[Ian Bell]], [[Robert Holdstock]], and... Philip Castle.&lt;br /&gt;
&lt;br /&gt;
The first three names were responsible for the programming and the documentation ([http://www.elitehomepage.org/playguide.htm ''Elite'' Players' Guide]; [https://archive.org/details/elite_acornsoft_manual/mode/1up?view=theater ''The Space Trader's Flight Training Manual''] and [https://openretro.org/file/ec43acc68931c84951a13b6285ed4ccd64b5b787 ''The Dark Wheel''], Stock Code Numbers for the latter: SBG38/B1 and SBG38/B3, respectively, etc.). However, the ''Elite'' simulator would probably not have had such a successful market-entrance had it not been for the fourth gentleman's eye-catching skills as an airbrush artist.&lt;br /&gt;
&lt;br /&gt;
On the [https://www.frontierastro.co.uk/Files/elite_misc.html &amp;quot;FrontierAstro ''Elite'' - Various Items&amp;quot;] page, approximately halfway down -- as if &amp;quot;quasi-[https://www.languagehumanities.org/what-is-a-chiastic-structure.htm chiastically]&amp;quot; in the central focal-point of the nine topic-sections -- he is briefly introduced... but his work is pretty much everywhere on that page.&lt;br /&gt;
&lt;br /&gt;
On [http://www.iancgbell.clara.net/elite/ Ian Bell's website], in the ''Elite'' Archives, in the file [http://www.elitehomepage.org/archive/a4120001.png a4120001.png], the &amp;quot;DECEMBER 1984&amp;quot; Acorn News report (scan), in the second column, third paragraph; and in [https://www.reddit.com/r/IAmA/comments/15od2s/comment/c7qdaj8/?utm_source=share&amp;amp;utm_medium=web3x&amp;amp;utm_name=web3xcss&amp;amp;utm_term=1&amp;amp;utm_content=share_button David Braben's 2013 reddit ''Elite: Dangerous'' AMA], [https://en.wikipedia.org/wiki/Philip_Castle Philip Castle] is authoritatively identified as the designer of the original ''Elite'' logo. (The [https://mythology.net/mythical-creatures/griffin/ &amp;quot;Griffin thing&amp;quot;], as mentioned by Braben, as a supposed element of the ''Elite'' logo, is debatable, though.)&lt;br /&gt;
&lt;br /&gt;
= ''Oolite'' branding history =&lt;br /&gt;
&amp;gt; 7 April 2004, [[User:Aegidian|Aegidian]]'s [[Aegidian_devlog|''Oolite'' (progress)]] [https://oolite.livejournal.com/profile LiveJournal] introduced the [https://wiki.alioth.net/index.php/File:Oolite-logo1.png ''Oolite'' userpic], which can be downloaded from that [https://www.livejournal.com/allpics.bml?user=oolite page] (right-click &amp;gt; Save Image As...) as a 100 pixels x 100 pixels .png image.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 16:15, 3 January 2006, Rxke apparently uploaded to the ''Elite'' Wiki a 128 x 128 [https://wiki.alioth.net/index.php/File:Oolite-logo2.png ''Oolite'' logo] version of the userpic.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 12:57, 7 May 2011, Ahruman uploaded to the ''Elite'' Wiki the 256 x 256 [https://wiki.alioth.net/index.php/File:Oolite-logo3.png &amp;quot;New (2011) ''Oolite'' icon&amp;quot;] by Eugene Chernyakov (seventh).&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Mon Oct 23, 2023 12:39 am, on the ''Oolite'' Bulletin Boards, in the Discussion forum, the [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=21464 &amp;quot;New splash screen and icon&amp;quot;] thread was posted by phkb, in which was suggested that the ''Oolite'' splash screen and icon had been around for a while now, and it was proposed that they were about due for a refresh. This discussion led to the new, red versions of the [https://wiki.alioth.net/index.php/File:Oolite-logo2.png 128 x 128] and [https://wiki.alioth.net/index.php/File:Oolite-logo3.png 256 x 256] logo-images, and the new black-and-white version of the [https://wiki.alioth.net/index.php/File:Oolite-IconBW.png ''Oolite'' icon], all three uploaded to the ''Elite'' Wiki as new version of the old filenames six days later by Phkb. The new, red logo was also incorporated in the official [https://oolite.space/ oolite.space] website.&lt;br /&gt;
&lt;br /&gt;
= Caveat &amp;amp; HowTo =&lt;br /&gt;
&lt;br /&gt;
The ''Elite'' Wiki allows the uploading of new versions of old files. However, &amp;quot;new version&amp;quot; should be defined and understood as &amp;quot;improved version&amp;quot;, rather than &amp;quot;different version&amp;quot;, where &amp;quot;improved&amp;quot; could mean &amp;quot;increased resolution&amp;quot;, or &amp;quot;more universally-applicable file format&amp;quot;, or other more subtle edits, in order to establish the [https://wiki.alioth.net/index.php/File:Elite-logo1988-3_manual_front_cover_(rotated).jpg originally-intended, '''best'''] version of the file. Uploading a ''different'' version of an existing file causes that file to be replaced universally throughout the entire ''Elite'' Wiki -- even on old, &amp;quot;history&amp;quot; pages of ''Elite'' wikipages (e.g.: on the very first, 05:22, 14 February 2006 version of the [https://wiki.alioth.net/index.php?title=Oolite_Main_Page&amp;amp;oldid=3181 ''Oolite'' Main Page] the original, blue, 2006 logo had been replaced by the new, red, 2023 logo). This is not a black-and-white, easily-defined, well-behaved, simple and straight-forward issue, and there could, arguably, be many ambiguous scenarios and exceptions to whatever guidelines might have been imagined.&lt;br /&gt;
&lt;br /&gt;
Therefore -- ''if in doubt'' -- it is safer, in terms of the preservation of the historical integrity of the ''Elite'' Wiki (although it also requires more work), to upload a &amp;quot;new&amp;quot; version of an existing file under a correspondingly-new filename with the intention of replacing the old version on subsequent (and not previous, historical) wikipages. When a &amp;quot;new&amp;quot; version of an existing file is considered for upload, the following methodology is recommended. &lt;br /&gt;
&lt;br /&gt;
'''HowTo'''&lt;br /&gt;
&lt;br /&gt;
On an ordinary ''Elite'' wikipage, in the left-hand margin, under &amp;quot;tools&amp;quot; &amp;gt; &amp;quot;Special pages&amp;quot; &amp;gt; &amp;quot;Media reports and uploads&amp;quot; &amp;gt; &amp;quot;File list&amp;quot;, in the &amp;quot;Search for media name&amp;quot; search box, enter a known portion of the filename (e.g.: &amp;quot;logo&amp;quot; or &amp;quot;icon&amp;quot;), click the &amp;quot;Include old versions of files&amp;quot; tick-box and then the &amp;quot;Go&amp;quot; button; then click the name-hyperlink that is associated with the desired thumbnail. Then, again, in the left-hand margin, under &amp;quot;tools&amp;quot; &amp;gt; &amp;quot;What links here&amp;quot;, in order to determine where on which wikipages which hyperlinks or references would potentially need to be updated to a new filename, so that history pages will not unintentionally be [https://en.wikipedia.org/wiki/Ministries_in_Nineteen_Eighty-Four#Ministry_of_Truth Minitrue]-redacted.&lt;br /&gt;
&lt;br /&gt;
Therefore, in an attempt (1) to prevent a loss of the commOonity's heritage on ''Elite'' Wiki history pages, and (2) to facilitate easier searching for older logo-versions, it is recommended that future, new-logo designs be named according to, and uploaded under filenames conforming to the established naming-scheme of &amp;quot;''Oolite''-logo#&amp;quot;, where # is the next number in the sequence, and that all of the hyperlinks throughout the ''Elite'' wiki be updated accordingly. It is recommended that only a single, highest-resolution logo-image be uploaded, since the ''Elite'' Wiki has the functionality to scale the logo images: &amp;lt;nowiki&amp;gt;[[File:oolite-logo#.png|196px]]&amp;lt;/nowiki&amp;gt;. A similar, numbered naming-scheme, although not implemented as yet, is also recommended for icons.&lt;br /&gt;
&lt;br /&gt;
If an older logo (or icon) might be required for any purpose, the [https://wiki.alioth.net/index.php/Special:ListFiles?limit=1000&amp;amp;ilsearch=logo&amp;amp;user=&amp;amp;ilshowall=1 &amp;quot;logo&amp;quot; File list search-page] is recommended (substitute &amp;quot;icon&amp;quot; in stead of &amp;quot;logo&amp;quot;, if required). Include old versions of files.&lt;br /&gt;
&lt;br /&gt;
= Original Logos and Icons =&lt;br /&gt;
&lt;br /&gt;
''' ''Elite'' '''&lt;br /&gt;
&lt;br /&gt;
''Elite'' logos have been sourced from box art, manual covers, half-title, title and other pages, and ''The Dark Wheel'''s front covers. It appears that other, minor media, included in any package, only have variations on the various themes in that package. The logos below are identified by, and arranged according to their dates and usage of first appearance. Hover over the images for descriptions. Consult [https://frontierastro.co.uk/ FrontierAstro] to see how some of these logos have been re-used for different elements of various versions.&lt;br /&gt;
&lt;br /&gt;
1984&lt;br /&gt;
[[File:Elite-logo1984-1 box art &amp;amp; The Dark Wheel front cover.jpg|128px|box art &amp;amp; The Dark Wheel front cover]]&lt;br /&gt;
[[File:Elite-logo1984-2 manual front cover.png|128px|manual front-cover]]&lt;br /&gt;
[[File:Elite-logo1984-3 manual half-title page.png|128px|manual half-title page]]&lt;br /&gt;
&lt;br /&gt;
1985&lt;br /&gt;
[[File:Elite-logo1985-1 box art &amp;amp; manual front cover.png|128px|box art &amp;amp; manual front-cover]]&lt;br /&gt;
[[File:Elite-logo1985-2 Spectrum manual title page.png|128px|Spectrum manual title-page]]&lt;br /&gt;
[[File:Elite-logo1985-4 The Dark Wheel front cover (rotated).jpg|128px|The Dark Wheel front cover]]&lt;br /&gt;
&lt;br /&gt;
1988&lt;br /&gt;
[[File:Elite-logo1988-1 box art.png|128px|box art]]&lt;br /&gt;
[[File:Elite-logo1988-3 manual front cover (rotated).jpg|128px|manual front-cover]]&lt;br /&gt;
&lt;br /&gt;
1991&lt;br /&gt;
[[File:Elite-logo1991-1 ArcElite manual front cover.png|128px|ArcElite manual front-cover]]&lt;br /&gt;
[[File:Elite-logo1991-2 ArcElite manual title page.png|128px|ArcElite manual title-page]]&lt;br /&gt;
[[File:Elite-logo1991-3 Elite Plus UK box art &amp;amp; manual front cover.png|128px|Elite Plus UK box art &amp;amp; manual front-cover]]&lt;br /&gt;
[[File:GalCop-logo1991-4 Elite Plus manual.png|128px|Elite Plus manual]]&lt;br /&gt;
[[File:Tri-Alliance-logo1991-5 ArcElite manual.png|128px|ArcElite manual - Tri-Alliance logo]]&lt;br /&gt;
&lt;br /&gt;
Some logos were originally designed skew by a few degrees anticlockwise. The original, skew versions are available from the [https://wiki.alioth.net/index.php/Special:ListFiles?limit=1000&amp;amp;ilsearch=logo&amp;amp;user=&amp;amp;ilshowall=1 &amp;quot;logo&amp;quot; File list search-page]. For ease of comparison, and for streamlining this page's layout, only the upright-rotated logos are shown here.&lt;br /&gt;
&lt;br /&gt;
The 1991 ArcElite manual title-page and 1984 manual front-cover logos seem to be the cleanest, for the purposes of using them as potential templates for future designs.&lt;br /&gt;
&lt;br /&gt;
From time to time, among the logos, there does seem to be a subtle motif of &amp;quot;ascending to the next level&amp;quot; (3D), &amp;quot;accelerating&amp;quot;, and then also &amp;quot;breaking out of the frame&amp;quot; and &amp;quot;transcending of boundaries&amp;quot;, as it were; c.f.: 1984 box art &amp;amp; ''The Dark Wheel'' front cover (even extending off-page), 1985 ''The Dark Wheel'' front cover, and 1988 manual front-cover. The graphics for the [https://ia601304.us.archive.org/19/items/Elite_Plus_Manual/Elite_Plus_Manual_text.pdf 1991 ''Elite Plus'' manual's] title page, Cobra Mk III (p. 13), ''Observer's Guide to Ships in Service'' (pp. 67 - 86), and the ''Imprint'' novella's title page (p. &amp;quot;87&amp;quot;), all subtly communicate this repeated motif as well. In comparison with the other logos, and within itself, the 1991 ''Elite Plus'' simulator's logo also adds an extra, juxtaposed element of realism...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' ''Oolite'' '''&lt;br /&gt;
&lt;br /&gt;
2004&lt;br /&gt;
[[File:Oolite-logo1.png|128px|Aegidian LiveJournal 100px x 100px userpic]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' ''Frontier'' ''' (for completeness)&lt;br /&gt;
&lt;br /&gt;
1993&lt;br /&gt;
[[File:Frontier- Elite II-logo1993 box art.png|128px|box art]]&lt;br /&gt;
[[File:Frontier- Elite II-logo1993 manual front cover.png|128px|manual front-cover]]&lt;br /&gt;
&lt;br /&gt;
1995&lt;br /&gt;
[[File:Frontier- First Encounters-logo1995 box art.jpg|128px|box art]]&lt;br /&gt;
[[File:Frontier- First Encounters-logo1995 manual front cover.jpg|128px|manual front-cover]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Logos and Icons on the ''Elite'' Wiki =&lt;br /&gt;
&lt;br /&gt;
''' ''Elite'' '''&lt;br /&gt;
&lt;br /&gt;
2006&lt;br /&gt;
&lt;br /&gt;
Wiki functionality is broken for me. I did what I could, to the best of my abilities, but I am apparently not capable/allowed to do what needs to be done here further anymore. Thanks. It's been fun, while it lasted. I'll leave this in the capable hands of other, more powerful people now.&lt;br /&gt;
&lt;br /&gt;
''' ''Oolite'' '''&lt;br /&gt;
&lt;br /&gt;
2006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2011&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2023&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''' ''Frontier'' ''' (for completeness)&lt;br /&gt;
&lt;br /&gt;
2006&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Fonts =&lt;br /&gt;
&lt;br /&gt;
The font used in-game is a custom, mono-spaced font. ''Oolite'' does not work with Truetype or Freetype fonts.&lt;br /&gt;
&lt;br /&gt;
The fonts in the documentation are ...&lt;br /&gt;
&lt;br /&gt;
The fonts used in the website oolite.space are ...&lt;br /&gt;
&lt;br /&gt;
The fonts used in the wiki are ...&lt;br /&gt;
&lt;br /&gt;
The fonts used in the forum are ...&lt;br /&gt;
&lt;br /&gt;
[[Category:Classic]][[Category:Oolite]][[Category:Factual]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Branding&amp;diff=89053</id>
		<title>Branding</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Branding&amp;diff=89053"/>
		<updated>2026-05-31T09:37:31Z</updated>

		<summary type="html">&lt;p&gt;Hiran: Hiran moved page Branding to Branding History: Name to better match the page's purpose&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Branding History]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alioth.net/index.php?title=Oolite_Instruction_Manual&amp;diff=88772</id>
		<title>Oolite Instruction Manual</title>
		<link rel="alternate" type="text/html" href="https://wiki.alioth.net/index.php?title=Oolite_Instruction_Manual&amp;diff=88772"/>
		<updated>2026-05-14T21:33:59Z</updated>

		<summary type="html">&lt;p&gt;Hiran: /* Playing the game */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing the game==&lt;br /&gt;
* [[Running Oolite-Mac|Build, Install and run Oolite on Mac OS X]] (Oolite v.1.92 is not available for the AppleMac)&lt;br /&gt;
* [[Running Oolite-Linux|Build, Install and run Oolite on Linux]]&lt;br /&gt;
* [[Running Oolite-Windows|Build, Install and run Oolite on Windows]]&lt;br /&gt;
* [[Running Oolite-Fedora Core 5|Build, Install and run Oolite on Fedora Core 5]]&lt;br /&gt;
* [[Running Oolite-Unix|Build, Install and run Oolite on BSD and Irix]]&lt;br /&gt;
&lt;br /&gt;
Note that from release 1.77 onwards two different release configurations are available for download: &amp;quot;deployment&amp;quot; which includes full optimisation and is most suitable for those just wanting to play the game, and &amp;quot;test&amp;quot; which includes additional debugging and development tools, and is intended for OXP development. If you are unsure, we recommend the &amp;quot;deployment release&amp;quot; - it is easy to convert it into a &amp;quot;test release&amp;quot; later.&lt;br /&gt;
&lt;br /&gt;
=== More general links ===&lt;br /&gt;
* [https://bb.oolite.space/viewtopic.php?f=2&amp;amp;t=16255 Source Code and Ideas question] (2014: v.1.77.1) - handling GitHub, how to change maximum amount sellable, elite rankings, legal status&lt;br /&gt;
&lt;br /&gt;
==A background to the game==&lt;br /&gt;
* [[Alien Items]] - A series of short stories which set the scene.&lt;br /&gt;
* [http://www.alioth.net/Fiction/oolitestory.pdf The Virtuous Misfortune] - A story that sets the scene (now included in &amp;quot;Alien Items&amp;quot;)&lt;br /&gt;
* [[Status Quo]] - Elite came with a Novella called 'The Dark Wheel', which set the scene for that game. 'Status Quo' aims to do the same thing for 'Oolite', introducing Commander Jamesons to the 'Ooniverse'... Status Quo is the first part of a five part series known as the [[Oolite Saga]].&lt;br /&gt;
* [[Calliope|Calliope - a Captain Hesperus adventure]] - An episode from the unorthodox life of the commander of the ''Dubious Profit''&lt;br /&gt;
* [[Powers and Organisations]] - Some histories of the various corporations and powers, both legal and illicit, that exist in the Oolite Galaxies.&lt;br /&gt;
* [[Mr Gimlet]] - A wise Blue Frog aboard Lave Station has some tips for new Commanders.&lt;br /&gt;
* The ''[[Rough Guide to the Ooniverse]]'' – A brief overview of the inhabitants, customs and cultures of Lave and other nearby worlds.&lt;br /&gt;
&lt;br /&gt;
==Playing the game==&lt;br /&gt;
* [https://github.com/OoliteProject/oolite/blob/master/Doc/OoliteRS.odt Download OoliteRS.odt] or access [https://oolite.readthedocs.io/en/latest/reference/ online] - Essential info reference sheet for a quick start&lt;br /&gt;
* Ship's Manual - available through the [[Ship's Library OXP]]&lt;br /&gt;
* [[Pilot's Reference Manual]]&lt;br /&gt;
* [[Oolite Docking Clearance Protocol (v1.72 or later)|Docking Clearance Protocol]]&lt;br /&gt;
* [[How to Dock|How to Dock]]&lt;br /&gt;
* [[Oolite Equipment|Equipment]] (&amp;amp; [[Priming Equipment]] for OXPs)&lt;br /&gt;
* [[Oolite Trading|Trading]]&lt;br /&gt;
* [[Career Options]]&lt;br /&gt;
* [[Oolite Tactics|General Combat Tactics]]&lt;br /&gt;
:* [[Dealing with piracy (Oolite)|How to deal with pirates]]&lt;br /&gt;
:* [[Dealing with Thargoids|How to deal with Thargoid ambushes]]&lt;br /&gt;
:* [[Laser tactics]]&lt;br /&gt;
:* [[Missile tactics]]&lt;br /&gt;
:* [[Using weapons of mass destruction|WMD tactics]]&lt;br /&gt;
* [[IFF system]]&lt;br /&gt;
* [[Fuel Scoops|Scooping fuel and cargo]]&lt;br /&gt;
* [[Contracts]]&lt;br /&gt;
* [[Oolite Keyboard Controls|Keyboard Controls]]&lt;br /&gt;
* [[Dizzy's guide to Setting up Joystick Axis Profiles|Setting up Joystick Axis Profiles]]&lt;br /&gt;
* [[Oolite Voice Control|Voice Control]]&lt;br /&gt;
* [[Oolite Missions|Missions]]&lt;br /&gt;
&lt;br /&gt;
==Technical help and troubleshooting==&lt;br /&gt;
* [[Location of Oolite saved settings]]&lt;br /&gt;
* [[Hidden Settings in Oolite]]&lt;br /&gt;
* [https://bb.oolite.space/ Oolite Bulletins Forum]&lt;br /&gt;
* [[Oolite FAQ|Oolite Frequently Asked Questions (FAQ)]]&lt;br /&gt;
* [[Joystick problems (Linux)]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Oolite]][[Category:Help pages]]&lt;/div&gt;</summary>
		<author><name>Hiran</name></author>
		
	</entry>
</feed>