42
|
1 README for TreePackager |
|
2 ======================= |
|
3 2007-03-19, Bernhard Herzog <bh@intevation.de> |
|
4 |
|
5 |
|
6 TreePackager is a tool to automatically build debian packages from SVN. |
|
7 |
|
8 |
|
9 Prerequisites |
|
10 ------------- |
|
11 |
|
12 You need the following software to run TreePackager. In the list below, |
|
13 parentheses contain the name of the corresponding package in Debian Etch |
|
14 if its not the same as the software. The version required is usually |
|
15 the one from debian etch. |
|
16 |
|
17 Python 2.4 (python2.4-minimal) |
|
18 Debian devscripts (devscripts) |
|
19 subversion |
|
20 pbuilder |
|
21 sudo |
|
22 bzip2 |
|
23 |
|
24 For the web front-end you also need the following software: |
|
25 |
|
26 Genshi (python-genshi) |
|
27 CherryPy (python-cherrypy) |
|
28 |
|
29 Some of the packagers require additional software. The KDEPIM |
|
30 enterprise branch packagers require the following additional software: |
|
31 |
|
32 autoconf2.13 |
|
33 automake1.9 |
|
34 |
|
35 |
|
36 Installation |
|
37 ------------ |
|
38 |
|
39 You can run the tree packager itself directly from the source tree. |
|
40 However, you need to configure it first and setup pbuilder. |
|
41 |
|
42 |
|
43 Configuration |
|
44 ------------- |
|
45 |
|
46 To understand the configuration, first a few notes about the |
|
47 architecture of TreePackager. The TreePackager consist of one program |
|
48 that periodically updates svn working directories and if something has |
|
49 changed, builds a new debian package from the working directory. The |
|
50 program should run as a normal user. The sample configuration assumes |
|
51 that it's the user "builder" with a home directory "/home/builder". The |
|
52 default configuration manages a directory tree under |
|
53 "/home/builder/enterprise". |
|
54 |
|
55 The binary packages are built with pbuilder. Because pbuilder uses a |
|
56 chroot environment to build the packages, it must be run as root. The |
|
57 tree packager therefore needs a way to run pbuilder as root even though |
|
58 itself runs as a non-root user. By default the tree packager uses sudo, |
|
59 so you have to setup sudo to allow the tree packager user to invoke |
|
60 pbuilder without a password. This can be accomplished with the |
|
61 following line in /etc/sudoers (using the default user name): |
|
62 |
|
63 builder ALL = NOPASSWD: /usr/sbin/pbuilder |
|
64 |
|
65 |
|
66 Configure TreePackager |
|
67 ~~~~~~~~~~~~~~~~~~~~~~ |
|
68 |
|
69 The file demo.cfg contains example configuration that contains most of |
|
70 what is needed to package KDEPIM and kde-i18n from the KDEPIM enterprise |
|
71 branch. Copy this file to treepkg.cfg and adapt it to your needs. The |
|
72 comments in the file should provide enough hints to get you started. |
|
73 |
|
74 |
|
75 Configure pbuilder |
|
76 ~~~~~~~~~~~~~~~~~~ |
|
77 |
|
78 Currently the tree packager assumes that pbuilder has already been set up |
|
79 and that the default configuration is suitable for the purposes the tree |
|
80 packager instance. Normally, the default way of setting up sudo should |
|
81 be OK. There is one important interaction with sudo that you need to be |
|
82 aware of, though: when the user builder starts pbuilder via sudo, |
|
83 pbuilder uses ~builder/.pbuilderrc as its standard configuration file. |
|
84 |
|
85 |
|
86 Configure the web front-end |
|
87 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
88 |
|
89 The default configuration should be OK in most cases. If you want you |
|
90 can customize it in cherrypy.cfg. Start the web front-end with |
|
91 |
|
92 ./starttreepkgweb.py |
|
93 |
|
94 starttreepkgweb has some options to specify which configuration files to use. |