rsync (optional for mirrorcheck with rsync mirrors)
Python dependencies
More detail in requirements.txt and requirements_prod.txt; it is best to
use virtualenv and pip to handle these. But if you insist on (Arch Linux)
packages, you will probably want the following:
python-django
python-psycopg2
python-markdown
python-memcached
Testing Installation
Run python -m venv env.
cd /path/to/archweb && python -m venv ./env/
Activate the virtualenv.
source ./env/bin/activate
Install dependencies through pip.
pip install -r requirements.txt
Copy local_settings.py.example to local_settings.py and modify.
Make sure to uncomment the appropriate database section (either sqlite or
PostgreSQL).
Migrate changes.
./manage.py migrate
Load the fixtures to pre populate some data. If you don't want some of the
provided data, adjust the file glob accordingly.
In local_settings.py add entries to set EMAIL_HOST to 'localhost' and EMAIL_PORT to
1025.
Running tests and coverage
Install the test dependencies:
pip install -r requirements_test.txt
To the unittests execute the following commands:
make collectstatic
make test
Running coverage:
make coverage
make open-coverage
Django Debug toolbar
To use the Django Debug toolbar install django-debug-toolbar and in local_settings.py
set DEBUG_TOOLBAR to True.
Management commands
Archweb provides multiple management commands for importing various sorts of data. An overview of commands:
generate_keyring - Assemble a GPG keyring with all known developer keys.
pgp_import - Import keys and signatures from a given GPG keyring.
read_rebuilderd_status - Import rebuilderd status into Archweb.
rematch_developers - Rematch flag requests and packages where user_id/packager_id is NULL to a Developer.
reporead - Parses a repo.db.tar.gz, repo.files.tar.gz file and updates the Arch database with the relevant changes.
reporead_inotify - Watches a templated patch for updates of *.files.tar.gz to update Arch databases with.
donor_import - Import a single donator from a mail passed to stdin
mirrorcheck - Poll every active mirror URLs to store the lastsnyc time and record network timing details.
mirrorresolv - Poll every active mirror URLs and determine wheteher they have IP4 and/or IPv6 addresses.
populate_signoffs - retrieves the latest commit message of a signoff-eligible package.
update_planet - Import all feeds for users who have a valid website and website_rss in their user profile.
read_links - Reads a repo.links.db.tar.gz file and updates the Soname model.
read_links_inotify - Watches a templated patch for updates of *.links.tar.gz to update Arch databases with.
Updating iPXE images
The binaries required for iPXE based netboot are updated by copying them from
the ipxe package to
the static content directory (with the run_ipxe
script the binaries may be tested beforehand):
请发表评论