TrustedUser
2,147
edits
(buildbot administration) |
m (Text replacement - "<source lang=" to "<syntaxhighlight lang=") |
||
(7 intermediate revisions by 6 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: | ||
<syntaxhighlight lang="bash"> | |||
sudo -s | |||
systemctl stop buildslave | |||
systemctl stop buildmaster | |||
cd ~buildbot/scummvm-sites | |||
sudo -u buildbot git pull --ff-only | |||
systemctl start buildmaster | |||
systemctl start buildslave | |||
</syntaxhighlight> | |||
If problems arise, check if all files in the master (~buildbot/master) and slave (~buildbot/slave) directories are owned by the correct user (buildbot: | 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 | ||
<syntaxhighlight lang="bash"> | |||
chown -R buildbot:buildbot ~buildbot/scummvm-master/* | |||
chown -R buildbot:buildbot ~buildbot/scummvm-slave/* | |||
</syntaxhighlight> | |||
* 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. | |||
<syntaxhighlight lang="bash"> | |||
tar -xvzf SDL-1.2.15.tar.gz -d /home/digitall | |||
</syntaxhighlight> | |||
* 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 :/ | |||
<syntaxhighlight lang="bash"> | |||
patch -p0 < SDL-1.2.15-Fix-Windows-DLL-Version.patch | |||
</syntaxhighlight> | |||
* Add toolchain binaries directory to path. | |||
<syntaxhighlight lang="bash"> | |||
PATH=/opt/toolchains/x86_64-w64-mingw32/bin:$PATH | |||
export PATH | |||
</syntaxhighlight> | |||
* 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. | |||
<syntaxhighlight 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 | |||
</syntaxhighlight> | |||
* Compile the codebase. | |||
<syntaxhighlight lang="bash"> | |||
make | |||
</syntaxhighlight> | |||
* 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. | |||
<syntaxhighlight lang="bash"> | |||
sudo bash | |||
PATH=/opt/toolchains/x86_64-w64-mingw32/bin:$PATH | |||
export PATH | |||
make install | |||
</syntaxhighlight> |