Packaging

From OrbiterWiki
Revision as of 12:26, 15 May 2021 by Arvil (talk | contribs) (Added category.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The packaging system uses the Cygwin packaging system through the setup.exe software, which allows package download, installation, version management, etc...

This software isn't supposed to be used for anything else than installing Cygwin, although we can cheat with it in order to manage Orbiter packages.

How can I use it?[edit]

Here is the different steps:

  1. Download setup.exe and run it
  2. Select a root directory. This directory can be a fresh Orbiter base (+ hires textures) directory or an empty directory if you want to get Orbiter from the package system (like c:\orbiter )
  3. Select a directory where to download packages before installation (liek c:\orbiter_cache )
  4. Select "install from internet"
  5. Here setup.exe downloads the list of Cygwin mirror sites, but as long a we don't want to install Cygwin, we have to enter the URL of an Orbiter package repository (a test repository has been set up here : http://construct.ath.cx/~case/orbiter/repository/ (PLEASE don't get orbiter_base or orbiter_hires texture package from there!))
  6. You can now select the packages you want to install. You will notice that the system will automaticaly select some packages requiered in order to install thoses you have selected (for exemple: cvel dll will be automaticaly selected if you try to install the proton launcher)
  7. Then setup.exe will download the selected packages and install them in the choosen directory.
  8. "Et voila!"

Known issues[edit]

You can notice too that there is a lot of empty directories created in the root directory (like "bin" , "usr", "home", ...). These are default directories used by the Cygwin system, but we don't use them. They are not interfering with our directory so we can just ignore them.

How does it work?[edit]

How to create a package?[edit]

Documentation from Cygwin : http://www.cygwin.com/setup.html But as long as the upset.pl from http://construct.ath.cx/~case/orbiter/repository/ is a compelte and partial re-engineering of the Cygwin's version (if someone wants to code a better one, feel free to do so...), we have some limitation: no subdirectories in the package directories, no more than 2 version of a package in a directory.

How to set up a repository?[edit]

You can browse http://construct.ath.cx/~case/orbiter/repository/ and see how it's organised.

http://sourceware.org/cygwin-apps/package-server.html

Discution about package organisation[edit]

Basic Rules[edit]

  • A package can't have a file with the same name at the same place than another package.
  • A package will have the less dependencies possible, i.e :
    • Vessels will never depend on bases, other vesseles, mfd's, etc... If a scenario involving this vessel need other addons, this scenario will be hosted in a separate package. So if someone want to play a certain mission, he will install the scenario and all its dependencies (including the vessel), if we only want to install the vessel only, he still can. the scenario shipped with a vessel must work with orbiter_base alone.
    • Bases packages will never depend on vessels, systems, or anything. But a lot of systems can be created, some of them sharing the same bases.