summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1fe1e74)
Also, 2 newlines after each section.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
* A database server (postgresql, mysql)
* relevant python modules for the database server (e.g: python-mysqldb)
* A database server (postgresql, mysql)
* relevant python modules for the database server (e.g: python-mysqldb)
1. Database setup
At present, I've tested with PostgreSQL and (to a lesser extent) MySQL
1. Database setup
At present, I've tested with PostgreSQL and (to a lesser extent) MySQL
it, tests checking for the correct handling of non-ASCII characters
fail.
it, tests checking for the correct handling of non-ASCII characters
fail.
- Set up some initial directories in the patchwork base directory:
+ Set up some initial directories in the patchwork base directory:
- mkdir -p lib/packages lib/python
+ mkdir -p lib/packages lib/python
- lib/packages is for stuff we'll download; lib/python is to add
- to our python path. We'll symlink python modules into lib/python.
+ lib/packages is for stuff we'll download; lib/python is to add
+ to our python path. We'll symlink python modules into lib/python.
- At the time of release, patchwork depends on django version 1.5 or
- later. Your distro probably provides this. If not, do a:
+ At the time of release, patchwork depends on django version 1.5 or
+ later. Your distro probably provides this. If not, do a:
- cd lib/packages
- git clone https://github.com/django/django.git -b stable/1.5.x
- cd ../python
- ln -s ../packages/django/django ./django
+ cd lib/packages
+ git clone https://github.com/django/django.git -b stable/1.5.x
+ cd ../python
+ ln -s ../packages/django/django ./django
- The settings.py file contains default settings for patchwork, you'll
- need to configure settings for your own setup.
+ The settings.py file contains default settings for patchwork, you'll
+ need to configure settings for your own setup.
- Rather than edit settings.py, create a file 'local_settings.py', and
- override or add settings as necessary. You'll need to define the
- following:
+ Rather than edit settings.py, create a file 'local_settings.py', and
+ override or add settings as necessary. You'll need to define the
+ following:
- SECRET_KEY
- ADMINS
- TIME_ZONE
- LANGUAGE_CODE
- DEFAULT_FROM_EMAIL
- NOTIFICATION_FROM_EMAIL
+ SECRET_KEY
+ ADMINS
+ TIME_ZONE
+ LANGUAGE_CODE
+ DEFAULT_FROM_EMAIL
+ NOTIFICATION_FROM_EMAIL
- You can generate the SECRET_KEY with the following python code:
+ You can generate the SECRET_KEY with the following python code:
- import string, random
- chars = string.letters + string.digits + string.punctuation
- print repr("".join([random.choice(chars) for i in range(0,50)]))
+ import string, random
+ chars = string.letters + string.digits + string.punctuation
+ print repr("".join([random.choice(chars) for i in range(0,50)]))
- If you wish to enable the XML-RPC interface, add the following to
- your local_settings.py file:
+ If you wish to enable the XML-RPC interface, add the following to
+ your local_settings.py file:
- Then, get patchwork to create its tables in your configured database:
+ Then, get patchwork to create its tables in your configured database:
- cd apps/
- PYTHONPATH=../lib/python ./manage.py syncdb
+ cd apps/
+ PYTHONPATH=../lib/python ./manage.py syncdb
- And add privileges for your mail and web users. This is only needed if
- you use the ident-based approach. If you use password-based database
- authentication, you can skip this step.
+ And add privileges for your mail and web users. This is only needed if
+ you use the ident-based approach. If you use password-based database
+ authentication, you can skip this step.
- Postgresql:
- psql -f lib/sql/grant-all.postgres.sql patchwork
+ Postgresql:
+ psql -f lib/sql/grant-all.postgres.sql patchwork
- MySQL:
- mysql patchwork < lib/sql/grant-all.mysql.sql
+ MySQL:
+ mysql patchwork < lib/sql/grant-all.mysql.sql
-Example apache configuration files are in lib/apache2/.
+ Example apache configuration files are in lib/apache2/.
+
+ wsgi:
django has built-in support for WSGI, which supersedes the fastcgi
handler. It is thus the preferred method to run patchwork.
django has built-in support for WSGI, which supersedes the fastcgi
handler. It is thus the preferred method to run patchwork.
a2enmod wsgi
apache2ctl restart
a2enmod wsgi
apache2ctl restart
An example apache configuration file for mod_python is in:
An example apache configuration file for mod_python is in:
web server is used for serving php files, the fastcgi method may suit
instead.
web server is used for serving php files, the fastcgi method may suit
instead.
django has built-in support for fastcgi, which requires the
'flup' python module. An example configuration is in:
django has built-in support for fastcgi, which requires the
'flup' python module. An example configuration is in:
socket=/srv/patchwork/var/fcgi.sock \
pidfile=/srv/patchwork/var/fcgi.pid
socket=/srv/patchwork/var/fcgi.sock \
pidfile=/srv/patchwork/var/fcgi.pid
4. Configure patchwork
Now, you should be able to administer patchwork, by visiting the
URL:
4. Configure patchwork
Now, you should be able to administer patchwork, by visiting the
URL:
* Set up your projects
* Configure your website address (in the Sites) section
* Set up your projects
* Configure your website address (in the Sites) section
5. Subscribe a local address to the mailing list
5. Subscribe a local address to the mailing list
- You will need an email address for patchwork to receive email on - for
- example - patchwork@, and this address will need to be subscribed to the
- list. Depending on the mailing list, you will probably need to confirm the
- subscription - temporarily direct the alias to yourself to do this.
+ You will need an email address for patchwork to receive email on - for
+ example - patchwork@, and this address will need to be subscribed to the
+ list. Depending on the mailing list, you will probably need to confirm the
+ subscription - temporarily direct the alias to yourself to do this.
+
6. Setup your MTA to deliver mail to the parsemail script
6. Setup your MTA to deliver mail to the parsemail script
sudo -u nobody /srv/patchwork/apps/patchwork/bin/parsemail.sh < mail
sudo -u nobody /srv/patchwork/apps/patchwork/bin/parsemail.sh < mail
7. Set up the patchwork cron script
Patchwork uses a cron script to clean up expired registrations, and
7. Set up the patchwork cron script
Patchwork uses a cron script to clean up expired registrations, and
- the frequency should be the same as the NOTIFICATION_DELAY_MINUTES
setting, which defaults to 10 minutes.
- the frequency should be the same as the NOTIFICATION_DELAY_MINUTES
setting, which defaults to 10 minutes.
8. Optional: Configure your VCS to automatically update patches
The tools directory of the patchwork distribution contains a file
8. Optional: Configure your VCS to automatically update patches
The tools directory of the patchwork distribution contains a file
similar hook using pwclient to update patch state. If you do write
one, please contribute it.
similar hook using pwclient to update patch state. If you do write
one, please contribute it.
Some errors:
* __init__() got an unexpected keyword argument 'max_length'
Some errors:
* __init__() got an unexpected keyword argument 'max_length'