Mercurial > treepkg
annotate README @ 70:4b537aadc5ce
add README section for the static web-page config
author | Bernhard Herzog <bh@intevation.de> |
---|---|
date | Thu, 12 Apr 2007 21:01:42 +0200 |
parents | b52779523392 |
children | 2eefd12526ff |
rev | line source |
---|---|
42 | 1 README for TreePackager |
2 ======================= | |
3 | |
4 | |
5 TreePackager is a tool to automatically build debian packages from SVN. | |
6 | |
7 | |
8 Prerequisites | |
9 ------------- | |
10 | |
11 You need the following software to run TreePackager. In the list below, | |
12 parentheses contain the name of the corresponding package in Debian Etch | |
13 if its not the same as the software. The version required is usually | |
14 the one from debian etch. | |
15 | |
16 Python 2.4 (python2.4-minimal) | |
17 Debian devscripts (devscripts) | |
18 subversion | |
19 pbuilder | |
20 sudo | |
21 bzip2 | |
22 | |
23 For the web front-end you also need the following software: | |
24 | |
25 Genshi (python-genshi) | |
26 CherryPy (python-cherrypy) | |
27 | |
28 Some of the packagers require additional software. The KDEPIM | |
29 enterprise branch packagers require the following additional software: | |
30 | |
31 autoconf2.13 | |
32 automake1.9 | |
33 | |
34 | |
35 Installation | |
36 ------------ | |
37 | |
38 You can run the tree packager itself directly from the source tree. | |
39 However, you need to configure it first and setup pbuilder. | |
40 | |
41 | |
42 Configuration | |
43 ------------- | |
44 | |
45 To understand the configuration, first a few notes about the | |
46 architecture of TreePackager. The TreePackager consist of one program | |
47 that periodically updates svn working directories and if something has | |
48 changed, builds a new debian package from the working directory. The | |
49 program should run as a normal user. The sample configuration assumes | |
50 that it's the user "builder" with a home directory "/home/builder". The | |
51 default configuration manages a directory tree under | |
52 "/home/builder/enterprise". | |
53 | |
54 The binary packages are built with pbuilder. Because pbuilder uses a | |
55 chroot environment to build the packages, it must be run as root. The | |
56 tree packager therefore needs a way to run pbuilder as root even though | |
57 itself runs as a non-root user. By default the tree packager uses sudo, | |
58 so you have to setup sudo to allow the tree packager user to invoke | |
59 pbuilder without a password. This can be accomplished with the | |
60 following line in /etc/sudoers (using the default user name): | |
61 | |
62 builder ALL = NOPASSWD: /usr/sbin/pbuilder | |
63 | |
64 | |
65 Configure TreePackager | |
66 ~~~~~~~~~~~~~~~~~~~~~~ | |
67 | |
68 The file demo.cfg contains example configuration that contains most of | |
69 what is needed to package KDEPIM and kde-i18n from the KDEPIM enterprise | |
70 branch. Copy this file to treepkg.cfg and adapt it to your needs. The | |
71 comments in the file should provide enough hints to get you started. | |
72 | |
73 | |
74 Configure pbuilder | |
75 ~~~~~~~~~~~~~~~~~~ | |
76 | |
50
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
77 It's best to give the tree packager its own pbuilder configuration and |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
78 directories. The default configuration uses a "pbuilder" subdirectory |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
79 in /home/builder/enterprise. If you have created the treepkg.cfg file |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
80 with at least one packager and the correct root_cmd and pbuilderrc |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
81 options (the defaults for both should be OK if you use sudo as described |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
82 above), you can create the directories, the pbuilder configuration and |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
83 the chroot environment with the script initpbuilder.py like this: |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
84 |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
85 ./initpbuilder.py --mirrorsite=<URL of preferred debian mirror> |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
86 |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
87 You can specify some more mirrors with the --othermirror option. For |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
88 more information run "./initpbuilder.py --help" and consult the pbuilder |
225206553bba
update README part about pbuilder config
Bernhard Herzog <bh@intevation.de>
parents:
42
diff
changeset
|
89 documentation. |
42 | 90 |
91 | |
92 Configure the web front-end | |
93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
94 | |
70
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
95 The web front-end consists of a single HTML-page with an overview of the |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
96 packager status and links to build logs when available. There are two |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
97 ways to publish this front-end: as little web-server with a dynamic |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
98 web-page or as a directory with a bunch of files making up a static |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
99 web-site. |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
100 |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
101 Webserver: |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
102 |
42 | 103 The default configuration should be OK in most cases. If you want you |
104 can customize it in cherrypy.cfg. Start the web front-end with | |
105 | |
106 ./starttreepkgweb.py | |
107 | |
108 starttreepkgweb has some options to specify which configuration files to use. | |
70
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
109 |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
110 |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
111 Static pages: |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
112 |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
113 The static pages are published using two programs, createstaticweb.py |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
114 and publishstaticweb.py. createstaticweb.py is run on the system where |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
115 the tree packager runs. publishstaticweb.py is usually run on another |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
116 system and connects via ssh and rsync to the tree packager host, creates |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
117 the files with createstaticweb.py and copies the files from the tree |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
118 packager host to a third host. |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
119 |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
120 The config file for publishstaticweb.py is demostaticweb.cfg. Copy this |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
121 file to ststaticweb.cfg and adapt it to your system. The comments in |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
122 the file describe the options. Afterwards, run the script with |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
123 |
4b537aadc5ce
add README section for the static web-page config
Bernhard Herzog <bh@intevation.de>
parents:
69
diff
changeset
|
124 ./publishstaticweb.py |