DevZone configuration files:



Every changegroup pushed to the devzone will be "backuped" to the location in this file.



Note: This needs write permission for the DevZone.
On Bitbucket.org, just give the user "OpenTTD" write access to the repo you created there.
If you have another server, you need to allow ssh with key, the public key of the DevZone.

Backup scheduler runs every 4 hours.


Note: this part is currently on hold, as we are on transfer from Apache to Nginx

This file will be copied to your project at bundles.openttdcoop.org and included as header.

Example: http://bundles.openttdcoop.org/opengfx/

TODO: some substitutions



  1. clone the repo
  2. tar the repo
  3. building the tar using the rpm spec
  4. copying *.zip *.log *.md5 *.rev sprites/*.nfo from chroot/usr/src/packages/BUILD/<repo>/
    to bundles.openttdcoop.org/<repo>/<releases|nightlies>/<rev>
  5. symlink <rev> to latest
  6. copying bundles-header.html (not working now)
  7. writing finger: http://bundles.openttdcoop.org/versions.txt (not working now)
    Usage: /home/openttd/bin/update-versions.sh <project> <version> <date> [<branch>]

no grf example: NML


The only required file, it enables the project for compile scheduler, the content does tell the type for default values which can be overridden by the other files.
This file is located in REPO/.devzone/build/BUILD_TYPE/enable only

type requirements build steps executed
bash .devzone/build/BUILD_TYPE/enable ./make.sh
nfo .devzone/build/BUILD_TYPE/enable make; make bundle_zip; make bundle_src
nml .devzone/build/BUILD_TYPE/enable make; make bundle_zip; make bundle_src
nml-sub .devzone/build/BUILD_TYPE/enable make; make bundle_zip; make bundle_src
rpm (& others) requires every file ./.devzone/build/jenkins_build.sh

one rpm spec file
default (nfo): compiler/.default/grf.spec


Which files to copy from BUILD to the bundles


%{BUILD} $RPMBUILDDIR/BUILD/$REPO (%{BUILD} get replaced by the build path in the chroot)
%{ARCH} $ARCH (i586)
%{VERSION} Versionstring
R; Required, if this file doesn't exist, the DevZone does announce fatal error, the remaining files will be published to <branch>/ERROR/<rev> (inclusive flag "5" - does also generate a md5sum file)
5; a md5sum with same name but extension .md5
E; Warning, the lines in this file will be counted and announced as (XX errors)
L; Files will be moved to subdirectory log like logfiles
# Comments, lines with starting # will be ignored



The DevZone build log will be transfered beside those.


Define other DevZone projects required to build
Format: <project>[;BRANCH (default:nightlies)]
Default: none


the minimum amount of releases to be published
default: 10 for nightlies, unlimited for releases, 1 for push
maximum: unlimited

unlimited = 0


the minimum amount of days a release is published
default: 100 for nightlies

(if not set, cleanup_releases "counts", only)

File hirarchy

The files are either located in build/ directly or in the BRANCH subfolders (e.g. nightlies)

  1. build/BRANCH/*
  2. build/*
  3. COMPILER/.default/*

Currently known and supported BRANCHes: nightlies, releases, push, testing
(please tell us, if you like to add a BRANCH to your project, it should easy be possible.)



mq - Mercurial Patch Queue


The repository, where the mq is based on, the repository needs to be known at http://hg.openttdcoop.org.

(repo openttd is in sync with official trunk and branch 1.0)

Use the same branches for the mq as for the main repo, set guards for experimental stuff, which the CF shouldn't use for "tests".

If you like a build/test to a specific revision, use tag with the hash of the mainrepo. (like a release)
There is also a nightly run at 20:00 CEST (same rev as official trunk), where it tries to apply the mq and build.