I'm handing out build boxes

Following the discussion in https://github.com/syncthing/syncthing/issues/563 I’m setting up build boxes, for those cases where this simplifies creating native packages of syncthing. I haven’t fully thought this through so it might change, but basically I’ll set up a basic VM (Linux, 512 MB RAM, 12 GB disk, one CPU, public IP, DNS) that can be used to build syncthing for a relevant architecture. This is what runs http://build.syncthing.net/ that creates the official binaries. If your needs are specifically different, let me know.

The conditions are;

  • The VM is for building and packaging syncthing plus reasonably related activities. These are not boxes for IRC shells, random file sharing, etc.

  • I install the operating system, you set up whatever build tools and environment you need. I probably have no idea how that stuff works so I can’t help you. I’ll set up push hooks from Github if you like (to get notifications of new pushes).

  • The resulting build status and artefacts should be available for viewing / download from the box in question so we can see that it works and notice when the build breaks for some reason.

  • There’s some work involved in setting it up, so I’ll be disappointed if there isn’t something building on the box after a week or so. :wink:

  • I’ll set it up reasonably secure, but I won’t be managing it for security updates etc. If it gets hacked and embarrasses us I’ll shut it down.

I can probably install whatever necessary OS as long as it runs under KVM, has an ISO image I can get my hands on and is free for the purpose.

Let me know your needs here.

@Nutomic For Android, is Ubuntu 14.04 amd64 fine with you? If so, pass me a public SSH key somewhere.

Yeah that’s perfect, use it myself :smiley:

Here’s my public key:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC11xySx7TnwlmHQyhVZxGdeVYFzp1JDQD14YdGTDu4yrXPq1Ie3IXLNekJK+r2jqooTfh7dAr2NvXYNzG0H64t8laIZoakpKnnfmV15HdgHZbIdDkh3veK/9dSdJS1tQBw30nTixx6lxWpmYInJAj4awFrOTEiVYVBhgexj8e0zKzOJyCGXkkAVo9I2MEL9joN6DxRp1TDzm0Ec0642b+xXPvJOvot7x9jDNoVRlDNfzoZx/SFY3lZS6r7TzZ/NigDE4Dzgn4jaK2JEoTMtf5a6XAzFrBa/tfhDbZ5UNpNV92jh6dCKKS9h8o+xkZ1cXMTMsCniDsd12L2ZS+8R2+B me at nutomic com

Edit: Changed plain email

ssh -p 2443 nutomic@android.syncthing.net (or 194.126.249.16 if DNS hasn’t taken yet)

Password is changeme, might want to change it (but password authentication is disabled for SSH anyway).

Awesome!

Do I install Jenkins straight from apt-get? It gives me an error there:

nutomic@android:~$ sudo apt-get install jenkins
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

I installed openjdk-6-jdk and used the plain jenkins.war from the jenkins website.

I know absolutely nothing about build servers, what do I have to do now to get it running? I doesn’t even seem to be a web interface available?

Webhooks triggering jenkins build http://thepracticalsysadmin.com/setting-up-a-github-webhook-in-jenkins/

there is already a debian package build plugin for jenkins: https://wiki.jenkins-ci.org/display/JENKINS/Debian+Package+Builder+Plugin

this is putting jenkins and github together: http://jenkins-debian-glue.org/getting_started/manual/

I’m not sure if this is what triggered it or what, but recently the 64 bit builds stopped working on my debian server. The reason is that it’s built to run based on /lib64/ld-linux-x86-64.so.2, which doesn’t exist in debian. Here’s my evidence:

$ readelf -a Sync/bin/syncthing G interpre
  [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]

Anyway I’m not sure what the fix is and I might just give up and use a 32 bit instance on my server.

@frioux Looks like this issue :wink:

I’ve fixed this on the build server, latest build should be fine.

Could you please tell me what I have to do to set the server up? As I said, I have no clue :smiley:

For jenkins, download the .war file and run it (java -jar jenkins.war) and you’ll get a web interface on port 127.0.0.1:8080. Then there’s a bunch of fiddling around in there to get things to a sane state, there’s info on jenkins-ci.org although neither Jenkins nor the docs are really that friendly to work with.

Okay I finally installed Jenkins following this guide, but I’m having trouble with authentification.

I just enable authentification, while adding user/group “Nutomic” with full access rights, then save it and register/login as user “Nutomic”, but it tells me I don’t have admin permissions.

@calmh Do you have any idea what I’m doing wrong?

Since I already had jenkins setup for other things, I setup a build for syncthing:

http://jenkins.mouf.net/job/syncthing/

1 Like