We have a buildbot

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
User avatar
Lucifer
Project Developer
Posts: 8744
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: We have a buildbot

Post by Lucifer »

Tank Program wrote:Thinking about it, it might be possible to setup a linux native cross-compile environment, e.g. i686-pc-mingw32-gnu-gcc. I've done it before for small binaries, but not for something as large as Armagetron. It would let you use all the nice linux native autotools though.
I tried that ~7 years ago. You have to *also* cross-compile all of the libraries, and not all of them do.

Still, I managed to get the server compiled and running.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Tank Program
Forum & Project Admin, PhD
Posts: 6712
Joined: Thu Dec 18, 2003 7:03 pm

Re: We have a buildbot

Post by Tank Program »

Yeah, the annoying library problem is the catch.
Image
User avatar
Lucifer
Project Developer
Posts: 8744
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: We have a buildbot

Post by Lucifer »

Bumping for Z-man to hopefully upload all of his scripts from his daily builder setup. ;)
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
/dev/null
Shutout Match Winner
Posts: 819
Joined: Sat Sep 04, 2004 6:28 pm
Location: Chicago-ish

Re: We have a buildbot

Post by /dev/null »

I might be out of line, but if you want a solid auto builder, look at the gentoo ebuild, its worked fine for over a decade with nothing more than changing where it grabs the source from.

That either attests to how robust it is, or how little you guys ever change anything. You decide. Granted, its been nuked for years due to the buffer overflows you guys either dont know or care about, but its still in some of the testing branches.
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: We have a buildbot

Post by Z-Man »

We don't know about any buffer overflows affecting 0.2.8.3.2 or current 0.2.8 or 0.4 branch code. Care to enlighten us?
Edit: What I found as explanation that arma is not officially on gentoo is this quick and somewhat rude note: http://www.gossamer-threads.com/lists/gentoo/dev/221619
In some other place I read that they apparently used sed commands to mend stuff to their needs instead of figuring out the correct command parameters or asking us. I'd consider that unmaintainable as well.
User avatar
Jip
Round Winner
Posts: 397
Joined: Sat Sep 26, 2009 5:32 pm

Re: We have a buildbot

Post by Jip »

Lucifer wrote:Bumping for Z-man to hopefully upload all of his scripts from his daily builder setup. ;)
Bumping again :)
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: We have a buildbot

Post by Z-Man »

They're already public :) What I use for building the Windows versions from Linux is the script codeblocks/fromunix.sh. It's reasonably straightforward.
The general build scripts are in this branch: https://code.launchpad.net/~z-man/armag ... ildscripts
Err. I probably should have documented them at least a little. I can't quite remember which one you call from where and with what arguments. I'm trying to find out just now.
Also, a BIG part not covered by the scripts is the system setup; for the cross compilation, it's straightforward (Wine, correct version of code::blocks installed at default location). But for the Unix builds you need to have a 64 bit system with a 32 bit chroot subsystem installed. I have all that in a VM that I can't share because it contains private keys.
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: We have a buildbot

Post by Z-Man »

Ah. The scripts in that strage module are meant to be called from a checkout of the generic build projects here:
https://code.launchpad.net/~armagetrona ... build-work
https://code.launchpad.net/~armagetrona ... build-work
They're mostly convenience. The real work happens in the -build- modules. What makes the whole thing so complicated is that it's not just a simple configure-make build; things need to be specially wrapped for 0install, dead autopackage and that universal binary package thing that I forgot the name of. And uploaded to the right places. And the 0install feeds need to be updated correctly.
The Makefile.individual is for managing the 32 and 64 bit builds. Apparently, it expects /mybin/32 to switch over to the 32 bit subsystem. Hrm. I should document those things and how it expects the source branches to be checked out locally at least. Maybe I'll even find the docs I used to set up the 32 bit environment.

Oh, and they all totally still work. New snapshots for 0.2.8 and sty+ct have just been uploaded. No 0.4 build because the windows build is broken. Yeah, I've seen the posts, will get to it probably this week.
User avatar
Lucifer
Project Developer
Posts: 8744
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: We have a buildbot

Post by Lucifer »

I haven't looked it over yet, but it sounds like the buildbot will render a lot of this irrelevant, depending on what we get for buildslaves.

I'm still on 32-bit computers (I have my first 64-bit computer being built, but it's waiting on parts that need money to purchase). So I'll be offering 32-bit builds of anything I build with my buildslave.

I'm mostly interested in the windows builds, so that's going to be where I focus my attention. I'll probably add a 0.2.8 branch to the buildbot if only to get a working windows cross-compiled build to test with.

Ideally, like last time, we'll have people contribute buildslaves (@Monkey: Are you paying attentions? You can add a NetBSD buildslave, and that would be a Great Contribution!), and we'll cover all the main platforms (Windows 32 and 64 bit, Linux from source, and MacOS builds (Do they even have 32-bit Macs we need to worry about still?) ).

This post was written in LISP, apparently.

Edit: Just so there's no question about goals, I would really like the buildbot to build the 0.4.0 release for all relevant platforms. I'm not putting it out as a goal, more like a wish. Anybody reading this that wants to help can help by volunteering buildslaves for "relevant platforms". Any platform is fair game for buildslaves that simply test the build, but there's a core number of builds considered in the phrase "relevant platforms" that we won't release unless we can build for those.

Near as I can tell, here's the list:

* Windows 32 and 64 bit (needs to run all the way back to Windows XP, and everything since then)
* Linux binary (with some sort of 32 and 64 bit binaries that can be released, which we used to use Autopackage for)
* POSIX source release
* MacOS (Seriously, are people still using 32-bit Macs? If so, we need both 32 and 64-bit builds, potentially also for different versions of the OS)

After that, if we can use the buildbot to build packages for ANY OTHER platform, I believe we'll be happy to do so. Anybody maintaining packages for a specific OS should seriously consider helping with the buildbot.

I'm not making any promises as to what 0.4 will be built with, because there are way too many variables. The only promise I'm making is to offer Ubuntu Latest LTS packages 32-bit, if I can, and maybe a Windows 32-bit build, if nobody else steps up for that.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Re: We have a buildbot

Post by Z-Man »

Well, I would not be that optimistic. As I said, the build part itself is always just the standard configure/make stuff. You still need these special scripts to pack the resulting build for distribution. You still need to most of the special quirky stuff somehow, like preparing and uploading source packages for the Ubuntu PPA. The only part I see as potentially becoming obsolete would be the SF upload; buildbot seems to be able to handle that. And that's just a couple of lines.
User avatar
Monkey
Shutout Match Winner
Posts: 831
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: We have a buildbot

Post by Monkey »

Lucifer wrote:@Monkey: Are you paying attentions? You can add a NetBSD buildslave, and that would be a Great Contribution!
I use OpenBSD, not NetBSD :) .
FYI, FreeBSD, OpenBSD and NetBSD (the three main BSDs) are different operating systems; they do share some code and methods at the moment but the point is still valid. There is no standard base for these BSDs like there is for Linux distributions. The kernels are different and the userlands are different. Also of note is that they are, at least mostly, POSIX complient.

As far as providing a buildslave:

1) My connection: Fibre optic, 50 Mbps download and something decent upload too.
2) My computer: 64-bit quad core processor, available part time (nightly builds or similar only).
3) My operating system: OpenBSD i386 -current (32-bit). I could change to OpenBSD amd64 -current (64-bit) if required.
4) Buildbot software: Version 0.8.10 is available in OpenBSD's packages repository (including dependencies).

So keep me informed and I will do what I can...
Playing since December 2006
User avatar
Lucifer
Project Developer
Posts: 8744
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: We have a buildbot

Post by Lucifer »

Monkey: Provide what's easiest to you. For the BSD's, being able to compile a source release and provide a package should be sufficient. If you want to support multiple versions, that's up to you, and will require you to set up buildslaves in those different OS's. Let's not complicate things. Make a buildslave for what you've got.

With one minor caveat. ;)

I was intending to deploy what I have for the buildbot to the main server tonight, but something has come up and I will not be able to. Maybe tomorrow night? We'll see. The buildbot currently only supports stuff that builds with the GNU autotools on POSIX systems, but I figured I could go ahead and deploy that and worry about the others later.

I'll see about doing it ASAP, because I want Monkey's buildslave in the works soon, and anybody else's (there are plenty of Linux flavors, don't just take me running an Ubuntu LTS as a reference point!).

Still need someone with serious Mac experience building so we can hammer out a reliable build.... (Yes, I noticed Z-man started up his nightly build thing. If you want to play them, use his, because I'm still developing this thing ;) )
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Monkey
Shutout Match Winner
Posts: 831
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: We have a buildbot

Post by Monkey »

I'll provide a buildbot for OpenBSD only; it's the only OS I use and know properly. Note that I'm currently reading up on how to create ports/packages for OpenBSD's third-party software repository and the buildbot software.

Some questions:

1) Note that SDL2 is currently broken on OpenBSD and has been removed from the tree until it is fixed (I will inform you guys when it is fixed). What version of SDL does 0.4 currently use?
2) How often were you thinking of having my machine run the buildbot (nightly/weekly/etc)? I think I should be able to provide it for nightly builds, as long as the process doesn't take too long. I'm guessing that two or three hours, while I'm asleep, should be plenty, no?
3) Do you want me to use the 32-bit or 64-bit version of my OS? Also, Z-Man mentioned something about requiring/being able to do 32-bit stuff on a 64-bit POSIX OS using a chrooted subsystem. I'm guessing that this would involve some virtualisation software and two operating system instances. Care to expand on that? Note that I can't see me setting up my computer to do that, however, if/when 0.4 becomes an official OpenBSD port/package they would do the compiling on both architectures for us.
4) Is there anything else I need to know or be learning about at this time?
5) What should I do next?
Playing since December 2006
User avatar
Lucifer
Project Developer
Posts: 8744
Joined: Sun Aug 15, 2004 3:32 pm
Location: Republic of Texas

Re: We have a buildbot

Post by Lucifer »

Monkey wrote:I'll provide a buildbot for OpenBSD only; it's the only OS I use and know properly. Note that I'm currently reading up on how to create ports/packages for OpenBSD's third-party software repository and the buildbot software.

Some questions:

1) Note that SDL2 is currently broken on OpenBSD and has been removed from the tree until it is fixed (I will inform you guys when it is fixed). What version of SDL does 0.4 currently use?
1.2, iirc. That or 1.3, whatever the last release in the 1.x line was.
2) How often were you thinking of having my machine run the buildbot (nightly/weekly/etc)? I think I should be able to provide it for nightly builds, as long as the process doesn't take too long. I'm guessing that two or three hours, while I'm asleep, should be plenty, no?
Depends on which branches are being built. Right now, it's just 0.4 and the trunk, and in CST, the builds run at 2am and 10pm, respectively. If your slave is out of the loop for a few days, then as soon as it's back in, it'll start building what it missed.
3) Do you want me to use the 32-bit or 64-bit version of my OS? Also, Z-Man mentioned something about requiring/being able to do 32-bit stuff on a 64-bit POSIX OS using a chrooted subsystem. I'm guessing that this would involve some virtualisation software and two operating system instances. Care to expand on that? Note that I can't see me setting up my computer to do that, however, if/when 0.4 becomes an official OpenBSD port/package they would do the compiling on both architectures for us.
You don't need to worry about Z-man's fanciwork, he did that so he could generate a lot of builds from one computer. The buildbot doesn't work that way. ;) (It can, if we need it to, though)

You build whichever arch you want and we'll infer that if it builds successfully there, it'll build for the other, for your OS version.
4) Is there anything else I need to know or be learning about at this time?
5) What should I do next?
The next thing you should do is make sure you can build 0.4, and maybe give the trunk a run. If you can build it yourself, then the buildslave will be able to build it.

After you've got that, nag me until I get the current buildbot moved to the server (if I haven't already) and then we'll work out getting your slave into the mix.
Check out my YouTube channel: https://youtube.com/@davefancella?si=H--oCK3k_dQ1laDN

Be the devil's own, Lucifer's my name.
- Iron Maiden
User avatar
Monkey
Shutout Match Winner
Posts: 831
Joined: Thu May 22, 2008 12:36 am
Location: England, UK

Re: We have a buildbot

Post by Monkey »

My apologies for not being ready with the buildslave yet but I have quite a lot to read/learn and not much spare time in which to do it. However, I am making slow progress.
Playing since December 2006
Post Reply