Pacbuild

From ArchWiki

Jump to: navigation, search
Image:Tango-two-arrows.png This article is a candidate for merging.
It has been suggested that this page or section be merged with Pacbuild Explained. (Discuss)

Pacbuild is a distributed building daemon that can be used to build packages automatically and search for problems in packages. More information can be had here: http://xentac.net/~jchu/blog/static/pacbuild

If you are interested in offering a machine to build on (any architecture is welcome, but i686 is the most prevalent), contact Jason Chu (jason@archlinux.org) and he will give you a username and password.

Then, install the pacbuild package and edit /etc/strawberryConfig.py.

For i686, you want it to look like this, where <username> is your username and <password> is your password:

# 
# strawberryConfig - Config file for strawberry daemon
# Copyright (C) 2005 Jason Chu <jason@archlinux.org>
# 
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
# 

from sqlobject import *
import os, os.path

user = '<username>'
password = '<password>'
url = 'http://xentac.net:8888'

buildDir = '/mnt/temp/wakachroot'

maxBuilds = 1

DBdir = '/var/lib/pacbuild'

if not os.path.isdir(DBdir):
	os.makedirs(DBdir)
database = connectionForURI("sqlite://%s/strawberry.db"%DBdir)

sleeptime = 600

currentUrl = "ftp://ftp.archlinux.org/current/os/${CARCH}"
extraUrl = "ftp://ftp.archlinux.org/extra/os/${CARCH}"

pacmanConf = """
[options]
LogFile     = /var/log/pacman.log
NoUpgrade   = etc/passwd etc/group etc/shadow etc/sudoers
NoUpgrade   = etc/fstab etc/raidtab etc/ld.so.conf
NoUpgrade   = etc/rc.conf etc/rc.local
NoUpgrade   = etc/modprobe.conf etc/modules.conf
NoUpgrade   = etc/lilo.conf boot/grub/menu.lst
HoldPkg     = pacman glibc

[current]
Server = ftp://ftp.archlinux.org/current/os/i686

[extra]
Server = ftp://ftp.archlinux.org/extra/os/i686
"""
Once you've saved the config file, add strawberry to the DAEMONS variable in /etc/rc.conf. If you want the daemon to start before you reboot run
/etc/rc.d/strawberry start
as root.

Then just sit back and relax. That's all you need to do to help out with pacbuild.

[edit] See Also

Pacbuild Explained

[edit] TODO

Left to do before 0.4:

  • unionfs support for image building [Simo]
  • strawberry knows what arch it's building for [Jason]
  • builders aren't tied to an arch [Jason]
  • submitters can submit for any arch [Jason]
  • build profiles are arch specific [Jason]
  • paging for peach.py (Could be better, but it's good enough for now)
  • separate builds by architecture (or have them all in one) in peach.py
Personal tools