Difference between revisions of "Buildbot"

Jump to navigation Jump to search
2,537 bytes added ,  00:04, 11 March 2016
→‎Administration: Update config update steps for new buildbot.
(→‎Administration: Update config update steps for new buildbot.)
(3 intermediate revisions by 2 users not shown)
Line 51: Line 51:
When the buildbot config files are changed, a user with shell access and sudo privileges needs to run the following commands. It's good practice to do this once buildbot is idle:
When the buildbot config files are changed, a user with shell access and sudo privileges needs to run the following commands. It's good practice to do this once buildbot is idle:


sudo -s
<source lang="bash">
/etc/init.d/buildslave stop
sudo -s
/etc/init.d/buildbot stop
/etc/init.d/buildslave stop
cd ~buildbot/buildbot
/etc/init.d/buildmaster stop
svn up
cd ~buildbot/scummvm-sites
/etc/init.d/buildbot start
sudo -u buildbot git pull --ff-only
/etc/init.d/buildslave start
/etc/init.d/buildmaster start
/etc/init.d/buildslave start
</source>


If problems arise, check if all files in the master (~buildbot/master) and slave (~buildbot/slave) directories are owned by the correct user (buildbot:nogroup). If the daemons were incorrectly started, new files might have been created under another user account. In that case:
If problems arise, check if all files in the master (~buildbot/scummvm-master) and slave (~buildbot/scummvm-slave) directories are owned by the correct user (buildbot:buildbot). If the daemons were incorrectly started, new files might have been created under another user account. In that case:


* stop the daemons (see above)
* stop the daemons (see above)
* fix the permissions with
* fix the permissions with
chown -R buildbot:nogroup ~buildbot/master/*
<source lang="bash">
chown -R buildbot:nogroup ~buildbot/slave/*
chown -R buildbot:buildbot ~buildbot/scummvm-master/*
chown -R buildbot:buildbot ~buildbot/scummvm-slave/*
</source>
* start the daemons
* start the daemons
=== Rebuilding Toolchain Libraries ===
It is periodically necessary to update the toolchain libraries for
newer version releases or to add new library dependencies.
This is a basic outline procedure for how to build these on the
buildbot.
* Toolchains are located at /opt/toolchains/<host target> in general, with the following exceptions:
** Though some of the MinGW 32 toolchain is present in
/opt/toolchains/i586-mingw32msvc
which should be used as the host/prefix in the following
instructions, the binaries i.e. i586-mingw32msvc-gcc are located
at /usr/bin. This is probably as they are precompiled to be
installed at this location, so this is necessary.
However, if the PATH step to the bin is omitted in the following,
this will still work for this target, which is confusing and could
result in odd builds as some of toolchain bin contents may be needed.
* All source tarballs used and any patches should be left in /opt/toolchains for reference.
* /opt/toolchains is actually a symlink to the real location of the external storage drive, but /opt/toolchains should be used in all configuration to ensure that this can be freely moved in future if necessary.
libSDL:
* Decompress the latest libSDL tarball to a temporary location i.e.
<source lang="bash">
tar -xvzf SDL-1.2.15.tar.gz -d /home/digitall
</source>
* Apply any required patches i.e. Currently libSDL-1.2.15 snapshot has a error in the Win32 version strings.. This may occur again on future releases :/
<source lang="bash">
patch -p0 < SDL-1.2.15-Fix-Windows-DLL-Version.patch
</source>
* Add toolchain binaries directory to path.
<source lang="bash">
PATH=/opt/toolchains/x86_64-w64-mingw32/bin:$PATH
export PATH
</source>
* Add out of tree build directory and configure the SDL codebase here with the host target and prefix to use the correct cross toolchain and target for make install.
<source lang="bash">
mkdir SDL-1.2.15-x86_64-w64-mingw32
cd SDL-1.2.15-x86_64-w64-mingw32
../SDL-1.2.15/configure --host=x86_64-w64-mingw32 --prefix=/opt/toolchains/x86_64-w64-mingw32
</source>
* Compile the codebase.
<source lang="bash">
make
</source>
* Install the compiled files. As you become root, you need to make the same modification to the path to get the required cross toolchain tools such as ranlib.
<source lang="bash">
sudo bash
PATH=/opt/toolchains/x86_64-w64-mingw32/bin:$PATH
export PATH
make install
</source>
561

edits

Navigation menu