Styrene

From CDOT Wiki
Jump to: navigation, search

Description

Polystyrene is a database-driven build-job queueing and solving system used in conjunction with RPM packages and the Koji buildsystem.

Setup

To obtain the source code, run the following command:

git clone git://git.fedorahosted.org/arm.git

Note:

  • This repo contains other folders so look for the styrene directory inside of it

Config

You can use the default values (which are taken from your current system settings) but that wont include being able to work on any update repositories (ex. F15-Updates). You can place the configuration files in
/etc/styrene.conf
or in
~/.styrene.conf
. Below is an example config file for working on F13-Updates:
db = /tmp/f13.db
kojitag = dist-f13-updates
release = 13
binrepo = updates
srcrepo = updates-source

Note:

  • The actual database file here will be located in the /tmp/ directory.

Database

+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                    goal                                                                                     |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
| srpm varchar(256) PRIMARY KEY | envr_original varchar(40) | envr_override varchar(40) | state int | timestamp timestamp | model int | comment varchar(4096) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------+
+---------------------------------------------+
|                   dep_cap                   |
+---------------------------------------------+
| srpm varchar(256) | capability varchar(256) |
+---------------------------------------------+
+--------------------------------------------------------+
|                          dep_rpm                       |
+--------------------------------------------------------+
| capability varchar(256) PRIMARY KEY | rpm varchar(256) |
+--------------------------------------------------------+
+--------------------------------------------------+
|                      dep_srpm                    |
+--------------------------------------------------+
| rpm varchar(256) PRIMARY KEY | srpm varchar(256) |
+--------------------------------------------------+

Notes:

  • goal.srpm <-> dep_cap.srpm
  • dep_cap.capability <-> dep_rpm.capability
  • dep_rpm.rpm <-> dep_srpm.rpm

Basic Usage

To initially create a db with the structure/info inside of it:

styrene load-db

In order to mark the db with the current package statuses in koji, run:

styrene mark-db

To start que'ing pkg builds (timed & throttled infinite-loop):

styrene que-ready

A graphical web page can be generated also if apache is running with cgi-bin enabled:

vi /var/www/cgi-bin/styrene
/path/to/styrene cgi-bin

Notes:

  • User "apache" should have a home folder and shell (ex. apache:x:48:48:Apache:/var/www:/bin/bash)
  • "apache" home folder should contain a link to an accessible styrene config/database (if not specified in etc)

URLs

Fedora-ARM