Skip to content

tanglu-org/packages-web

Repository files navigation

README
======

This README provides an overview over the source code.
For installation instructions see INSTALL.

Request
-------

What code gets executed for a request and in which order?
Perl modules referenced can be found under lib/

       HTTP request
             |
             |
      Apache rewrites       --        serves static files
 (conf/apache.conf.sed.in)         (generated by cron script,
             |                      or installed from static)
             |
     CGI/mod_perl wrapper
    (cgi-bin/dispatcher.pl)
             |
             |
      Request parsing
    (Packages::Dispatcher)
             |
             |
      Execute Action
    (Packages::Do*::do_*,
    uses data from files/)
             |
             |
      generate Output
     (Packages::Template,
  uses templates under templates/<format>/)

Cron
----

./bin/daily executes scripts from cron.d/ with run-parts:
(these are mostly just wrappers for scripts from bin/)

010git                     -- pull changes from git
050checkinst               -- check if all needed packages are installed
100syncarchive             -- retrieve data from main Debian archive
100syncarchive_backports   -- retrieve data from backports.debian.org
100syncarchive_debports    -- retrieve data from debian-ports.org (m68k)
100syncarchive_installer   -- retrieve d-i data
100syncarchive_m68k        -- retrieve data for etch-m68k
100syncarchive_maintainers -- retrieve maintainer index
100syncarchive_volatile    -- retrieve data from volatile.d.o
110debtags                 -- retrieve debtags vocabular
120synctrans               -- retrieve DDTP translations
200process_archive         -- convert all retrieved data to databases
                              (see BACKEND)
300maintainerdb            -- create data for @packages.d.o aliases
400changelogs_map          -- create changelogs map (for changelog: shortcut)
500update_po               -- update .pot and .po files and generate .gmo
600index_pages             -- create static index pages
                              <suite>/, <suite>/<subsection>, and
                              allpackages
600prepare_newpkg          -- prepare data for newpkg sites
700install_static          -- install data from static/ to www/

After that ./bin/daily runs ./bin/extract_changelogs to update
the changelogs in www/changelogs.

logs can be found in files/logs/{cron,changelogs,git}.log