<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Buildbot%3AGentoo</id>
	<title>Buildbot:Gentoo - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Buildbot%3AGentoo"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Buildbot:Gentoo&amp;action=history"/>
	<updated>2026-04-21T02:07:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Buildbot:Gentoo&amp;diff=2571&amp;oldid=prev</id>
		<title>Qrow: Created page with &quot;This page is WIP! (don&#039;t expect these instructions to work, they only give a hint, how it should/could work...)  Its best to run a 64 bit gentoo, as x32 can be easily compiled, too.  =buildbot-slave (for interacting with spring&#039;s buildbot)=  on springrts.com in /home/buildbot/master/passwords.py a user and password must be added. this username is needed to connect the buildslave client to the master.  install buildbot on the slave: &lt;code&gt;&lt;pre&gt; emerge dev-util/buildbot-sl...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Buildbot:Gentoo&amp;diff=2571&amp;oldid=prev"/>
		<updated>2026-03-04T02:01:38Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This page is WIP! (don&amp;#039;t expect these instructions to work, they only give a hint, how it should/could work...)  Its best to run a 64 bit gentoo, as x32 can be easily compiled, too.  =buildbot-slave (for interacting with spring&amp;#039;s buildbot)=  on springrts.com in /home/buildbot/master/passwords.py a user and password must be added. this username is needed to connect the buildslave client to the master.  install buildbot on the slave: &amp;lt;code&amp;gt;&amp;lt;pre&amp;gt; emerge dev-util/buildbot-sl...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page is WIP! (don&amp;#039;t expect these instructions to work, they only give a hint, how it should/could work...)&lt;br /&gt;
&lt;br /&gt;
Its best to run a 64 bit gentoo, as x32 can be easily compiled, too.&lt;br /&gt;
&lt;br /&gt;
=buildbot-slave (for interacting with spring&amp;#039;s buildbot)=&lt;br /&gt;
&lt;br /&gt;
on springrts.com in /home/buildbot/master/passwords.py a user and password must be added. this username is needed to connect the buildslave client to the master.&lt;br /&gt;
&lt;br /&gt;
install buildbot on the slave:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge dev-util/buildbot-slave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
add a local user which is used to build:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
useradd -s /bin/false -d /home/buildslave -m buildslave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
create the buildslave config&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
buildslave create-slave /home/buildslave springrts.com:9989 &amp;lt;buildbot user in passwords.py&amp;gt; &amp;lt;password in passwords.py&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
make it autostart:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
rc-update add buildslave default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
adjust config&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/conf.d/buildslave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
warning! you should use an ssh-tunnel to connect to the master as the password is sent in cleartext!&lt;br /&gt;
&lt;br /&gt;
=Setup gentoo win32 buildslave=&lt;br /&gt;
Note: boost and spring has to be compiled with the same compiler! If you get weird linker errors then this could be the cause!&lt;br /&gt;
&lt;br /&gt;
tools required for compiling&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge layman mercurial app-arch/p7zip-9.13 dev-util/cmake app-arch/zip wine crossdev app-portage/portage-utils&lt;br /&gt;
layman -a ohnobinki&lt;br /&gt;
echo &amp;quot;source /var/lib/layman/make.conf&amp;quot; &amp;gt;&amp;gt; /etc/portage/make.conf&lt;br /&gt;
CHOST=i686-mingw32 ROOT=/usr/i686-mingw32 emerge pthreads-win32&lt;br /&gt;
USE=&amp;quot;openmp cxx -fortran&amp;quot; crossdev i686-mingw32 --env &amp;#039;EXTRA_ECONF=&amp;quot;--disable-sjlj-exceptions --with-dwarf --enable-gomp --disable-shared&amp;quot;&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for java ai&amp;#039;s / interface install a jdk&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -va oracle-jdk-bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install i686-mingw32 compiler, then pthreads, then recompile i686-mingw32 with pthreads enabled&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
USE=&amp;quot;openmp cxx -fortran&amp;quot; crossdev i686-mingw32 --env &amp;#039;EXTRA_ECONF=&amp;quot;--disable-sjlj-exceptions --with-dwarf&amp;quot;&amp;#039;&lt;br /&gt;
CHOST=i686-mingw32 ROOT=/usr/i686-mingw32 emerge -va pthreads-win32&lt;br /&gt;
USE=&amp;quot;openmp cxx -fortran&amp;quot; crossdev i686-mingw32 --env &amp;#039;EXTRA_ECONF=&amp;quot;--disable-sjlj-exceptions --with-dwarf --disable-shared&amp;quot;&amp;#039;&lt;br /&gt;
emerge-wrapper --init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== stuff that needs to be compiled native (not with mingw)==&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge ncurses cmake eselect eselect-boost&lt;br /&gt;
ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge boost-build&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= mingw64 32 bit =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;USE=&amp;quot;openmp cxx -fortran -multilib static-libs&amp;quot; crossdev --env &amp;#039;EXTRA_ECONF=&amp;quot;--disable-shared&amp;quot;&amp;#039; -t i686-w64-mingw32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
TODO: see http://sourceforge.net/apps/trac/mingw-w64/wiki/Cross%20Win32%20and%20Win64%20compiler&lt;br /&gt;
&lt;br /&gt;
=Setup static linux=&lt;br /&gt;
&lt;br /&gt;
create /etc/portage/package.use/spring-static-buildslave:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sys-libs/zlib static-libs minizip&lt;br /&gt;
media-libs/devil static-libs opengl png jpeg tiff gif X&lt;br /&gt;
media-libs/giflib static-libs&lt;br /&gt;
media-libs/tiff static-libs&lt;br /&gt;
dev-libs/boost static-libs python&lt;br /&gt;
media-libs/jpeg  static-libs&lt;br /&gt;
media-libs/libsdl2 -audio opengl static-libs X&lt;br /&gt;
media-libs/libvorbis static-libs&lt;br /&gt;
media-libs/libogg static-libs&lt;br /&gt;
media-libs/freetype static-libs autohinter&lt;br /&gt;
media-libs/glew static-libs&lt;br /&gt;
media-libs/libpng static-libs&lt;br /&gt;
x11-libs/libXcursor static-libs&lt;br /&gt;
app-arch/bzip2 static-libs&lt;br /&gt;
x11-libs/libXdmcp static-libs&lt;br /&gt;
x11-libs/libXrender static-libs&lt;br /&gt;
x11-libs/libX11 static-libs&lt;br /&gt;
x11-libs/libXfixes static-libs&lt;br /&gt;
x11-libs/libxcb static-libs&lt;br /&gt;
x11-libs/libXau static-libs&lt;br /&gt;
net-misc/curl static-libs&lt;br /&gt;
dev-libs/openssl static-libs&lt;br /&gt;
sys-libs/libunwind static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==set compile flags on 64 bit gentoo==&lt;br /&gt;
this is only required on 64bit gentoo!&lt;br /&gt;
&lt;br /&gt;
if you don&amp;#039;t add -fPIC you mostly will get errors like his:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
relocation R_X86_64_32 against `a local symbol&amp;#039; can not be used when making a&lt;br /&gt;
shared object; recompile with -fPIC&lt;br /&gt;
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.1/../../../../lib64/libfl.a: could not&lt;br /&gt;
read symbols: Bad value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/etc/portage/env/spring-static-buildslave:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;${CFLAGS} -fPIC&amp;quot;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CXXFLAGS} -fPIC&amp;quot;&lt;br /&gt;
LDFLAGS=&amp;quot;${LDFLAGS} -fPIC&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/etc/portage/package.env/spring-static-buildslave:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sys-libs/zlib spring-static-buildslave&lt;br /&gt;
media-libs/devil spring-static-buildslave&lt;br /&gt;
media-libs/giflib spring-static-buildslave&lt;br /&gt;
media-libs/tiff spring-static-buildslave&lt;br /&gt;
dev-libs/boost spring-static-buildslave&lt;br /&gt;
media-libs/jpeg spring-static-buildslave&lt;br /&gt;
media-libs/libsdl2 spring-static-buildslave&lt;br /&gt;
media-libs/libvorbis spring-static-buildslave&lt;br /&gt;
media-libs/freetype spring-static-buildslave&lt;br /&gt;
media-libs/glew spring-static-buildslave&lt;br /&gt;
sys-devel/gcc spring-static-buildslave&lt;br /&gt;
media-libs/libpng spring-static-buildslave&lt;br /&gt;
x11-libs/libXcursor spring-static-buildslave&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==install needed programs and libs==&lt;br /&gt;
Emerge gcc-4.7.2&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -va =sys-devel/gcc-4.7.2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
enable / use it&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
gcc-config x86_64-pc-linux-gnu-4.7.2&lt;br /&gt;
env-update &amp;amp;&amp;amp; source /etc/profile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
re-install required libs with changed use flags:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -va sys-libs/zlib media-libs/devil dev-libs/boost media-libs/jpeg media-libs/libsdl2 \&lt;br /&gt;
media-libs/libvorbis media-libs/freetype media-libs/glew media-libs/libpng x11-libs/libXcursor \&lt;br /&gt;
app-arch/bzip2 x11-libs/libXdmcp x11-libs/libXrender x11-libs/libX11 x11-libs/libXfixes \&lt;br /&gt;
x11-libs/libxcb x11-libs/libXau net-misc/curl sys-libs/libunwind&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tune==&lt;br /&gt;
&lt;br /&gt;
use ld.gold for linking:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
binutils-config --linker ld.gold&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=32 bit buildbot on a 64 bit slave=&lt;br /&gt;
&lt;br /&gt;
switch back to the standard linker as glibc doesn&amp;#039;t compile with ld.gold if you get this error:&lt;br /&gt;
&amp;quot;These critical programs are missing or too old: as ld&amp;quot;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
binutils-config --libc 2.11.3 --linker ld.bfd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
USE=&amp;quot;openmp cxx -fortran&amp;quot; crossdev --target i686 --gcc 4.8.5 --libc 2.17&lt;br /&gt;
mkdir -p /usr/i686-pc-linux-gnu/etc/portage/package.use/&lt;br /&gt;
vi /usr/i686-pc-linux-gnu/etc/portage/package.use/spring-static-buildslave&lt;br /&gt;
&lt;br /&gt;
sys-libs/zlib static-libs minizip&lt;br /&gt;
media-libs/devil static-libs opengl png jpeg tiff gif X&lt;br /&gt;
media-libs/giflib static-libs&lt;br /&gt;
media-libs/tiff static-libs -cxx&lt;br /&gt;
dev-libs/boost static-libs -python&lt;br /&gt;
media-libs/jpeg  static-libs&lt;br /&gt;
media-libs/libsdl2 -audio opengl static-libs X&lt;br /&gt;
media-libs/libvorbis static-libs&lt;br /&gt;
media-libs/libogg static-libs&lt;br /&gt;
media-libs/freetype static-libs autohinter&lt;br /&gt;
media-libs/glew static-libs&lt;br /&gt;
media-libs/libpng static-libs&lt;br /&gt;
x11-libs/libXcursor static-libs&lt;br /&gt;
app-arch/bzip2 static-libs&lt;br /&gt;
x11-libs/libXdmcp static-libs&lt;br /&gt;
x11-libs/libXrender static-libs&lt;br /&gt;
x11-libs/libX11 static-libs&lt;br /&gt;
x11-libs/libXfixes static-libs&lt;br /&gt;
x11-libs/libxcb static-libs&lt;br /&gt;
x11-libs/libXau static-libs&lt;br /&gt;
dev-libs/gmp static-libs&lt;br /&gt;
dev-libs/mpfr static-libs&lt;br /&gt;
dev-libs/mpc static-libs&lt;br /&gt;
net-misc/curl static-libs&lt;br /&gt;
dev-libs/openssl static-libs&lt;br /&gt;
dev-java/oracle-jdk-bin -X -fontconfig&lt;br /&gt;
sys-libs/libunwind static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
(&lt;br /&gt;
  echo PYTHON_TARGETS=&amp;quot;python2_7&amp;quot;&lt;br /&gt;
  echo USE=&amp;quot;${USE} -pam -llvm -tools -uuid -kmod -classic -dri3 -egl -gallium -gbm -nptl -udev -fortran&amp;quot;&lt;br /&gt;
)&amp;gt;&amp;gt; /usr/i686-pc-linux-gnu/etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
force old version of glibc for more compatibility of the generated executable:&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /usr/i686-pc-linux-gnu/etc/portage/package.mask&lt;br /&gt;
echo &amp;#039;&amp;gt;sys-libs/glibc-2.17&amp;#039; &amp;gt; /usr/i686-pc-linux-gnu/etc/portage/package.mask/glibc&lt;br /&gt;
emerge-i686-pc-linux-gnu -va --nodeps dev-libs/libffi =dev-lang/python-2.7.11-r2&lt;br /&gt;
i686-pc-linux-gnu-emerge -va dev-util/pkgconfig x11-misc/util-macros&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
build all libs: (we use --nodeps as else it would pull in A LOT of dependencies which aren&amp;#039;t required. because of --nodeps, the order of parameters matters!)&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge-i686-pc-linux-gnu -va --nodeps \&lt;br /&gt;
sys-libs/zlib \&lt;br /&gt;
app-arch/bzip2 \&lt;br /&gt;
dev-libs/boost \&lt;br /&gt;
media-libs/tiff \&lt;br /&gt;
media-libs/jpeg \&lt;br /&gt;
media-libs/libvorbis \&lt;br /&gt;
media-libs/freetype \&lt;br /&gt;
media-libs/libpng \&lt;br /&gt;
media-libs/openal \&lt;br /&gt;
dev-libs/openssl \&lt;br /&gt;
net-misc/curl \&lt;br /&gt;
=sys-libs/libunwind-0.99-r1 \&lt;br /&gt;
x11-libs/libXdmcp \ &lt;br /&gt;
x11-libs/libXau \&lt;br /&gt;
=x11-libs/libxcb-1.10 \&lt;br /&gt;
x11-libs/libX11 \&lt;br /&gt;
x11-libs/libXrender \&lt;br /&gt;
x11-proto/fixesproto \&lt;br /&gt;
x11-libs/libXfixes \&lt;br /&gt;
x11-libs/libXcursor \&lt;br /&gt;
x11-libs/libdrm \&lt;br /&gt;
x11-proto/glproto \&lt;br /&gt;
x11-libs/libXext  \&lt;br /&gt;
x11-libs/libXdamage \&lt;br /&gt;
x11-proto/dri2proto \&lt;br /&gt;
media-libs/mesa \&lt;br /&gt;
media-libs/glu \&lt;br /&gt;
media-libs/glew \&lt;br /&gt;
media-libs/devil \&lt;br /&gt;
media-libs/libsdl2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=patches=&lt;br /&gt;
gcc omp patch: http://gcc.gnu.org/bugzilla/attachment.cgi?id=28752&lt;br /&gt;
&lt;br /&gt;
[[Category:Buildbot]]&lt;/div&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
</feed>