diff options
Diffstat (limited to 'web/README')
-rw-r--r-- | web/README | 271 |
1 files changed, 94 insertions, 177 deletions
@@ -1,187 +1,104 @@ -Setup on Arch Linux: -==================== -1) Install Apache, MySQL, PHP, and git - # pacman -Syu apache mysql php git - -2) Set a local 'hostname' of 'aur' - - Edit /etc/hosts and append 'aur' to loopback address - 127.0.0.1 localhost aur - -3) Configure Apache - - - Edit /etc/httpd/conf/httpd.conf and enable PHP support - by adding the following lines. - - LoadModule php5_module modules/libphp5.so - Include conf/extra/php5_module.conf - - - Also append the following snippet to enable the aur - Virtual Host (Replace MYUSER with your username). - - <VirtualHost aur:80> - Servername aur - DocumentRoot /home/MYUSER/aur/web/html - ErrorLog /var/log/httpd/aur-error.log - CustomLog /var/log/httpd/aur-access.log combined - <Directory /home/MYUSER/aur/web/html> - Options Indexes FollowSymLinks - AllowOverride All - Order allow,deny - Allow from all - </Directory> - </VirtualHost> - -4) Clone the AUR project (using the MYUSER from above) - $ cd - $ git clone git://projects.archlinux.org/aur.git - -5) Configure PHP - Make sure you have mysql and json enabled in PHP. - - - Edit php.ini and uncomment/add these lines: - extension=mysql.so - extension=json.so - - If those php extensions are separate packages on your system, install - them. - - AUR requires PEAR and the Archive_Tar module. - Installing PEAR will vary depending on the system and may already - be included with PHP. You can also find it in the PHP source - distribution. - - PHP sources: http://www.php.net/downloads.php - Archive_Tar PEAR module: http://pear.php.net/package/Archive_Tar - - - Install the Archive_Tar PEAR package: - # pear install Archive_Tar - - - Put PEAR in your php include_path in php.ini: - - include_path = ".:/usr/share/pear" - - PEAR's path may vary depending on your set up. - -6) Configure MySQL - - Start the MySQL service. Example: - # /etc/rc.d/mysqld start - - - Connect to the mysql client - # mysql -uroot - - - Issue the following commands to the mysql client - mysql> CREATE DATABASE AUR; - mysql> GRANT ALL PRIVILEGES ON AUR.* to aur@localhost - > identified by 'aur'; - mysql> FLUSH PRIVILEGES; - mysql> quit - - - Load the schema file - # mysql -uaur -p AUR < ~/aur/support/schema/aur-schema.sql - (give password 'aur' at the prompt) - - - Optionally load some test data for development purposes. - # pacman -S words mysql-python - # cd ~/aur/support/schema/ - # python gendummydata.py dummy-data.sql - # bzip2 dummy-data.sql - # bzcat dummy-data.sql.bz2 | mysql -uaur -p AUR - (give password 'aur' at the prompt) - - If your test data consists of real people and real email addresses consider - inserting bogus addressess to avoid sending unwanted spam from testing. You - can insert garbage addresses with: - mysql> UPDATE Users SET Email = RAND() * RAND(); - -7) Copy the config.inc.php.proto file to config.inc.php. Modify as needed. - # cd ~/aur/web/lib/ - # cp config.inc.php.proto config.inc.php - -8) Point your browser to http://aur - - -Web Interface: ============== - -Directory Layout: ------------------ -./html - DocumentRoot for AUR, where the PHP scripts live. -./html/css - CSS stylesheets -./html/images - Any AUR images live here. -./lib - Supporting PHP include files. Access denied to Apache. -./template - Where most of the html markup resides and minimal - amount of PHP scripting. - - There is also a template to model the site's top pages - in template.phps - - -Scripts: --------- -- lib/aur.inc - This is where we can stick functions that can be shared - between the various scripts. Also a good place to put the - MySQL authentication variables since it should live outside - the DocumentRoot. - -- html/login.php (probably index.php) - PHP script to handle logging users into the AUR web site. It - authenticates using the email address and a password against - the Users table. Once authenticated, a session id is generated - and stored in the Sessions table and sent as a cookie to the - user's browser. - -- html/logout.php - PHP script to logout. It clears the session id from the - Sessions table and unsets the cookie. - -- html/account.php - PHP script to handle registering for a new account. It prompts - the visitor for account information: Email, password, real name, - irc nick. The info is recorded in the Users table. Perhaps later, - we can add a preferences field that allows the user to request to - be notified when new packages are submitted so that they can cast - votes for them? - - If a TU is logged into the system, they can edit accounts and set - the account type (regular user or TU). If a Dev is logged in, they - can also set the account type to Dev. TUs and Devs are able to - delete accounts. If an account is deleted, all "Unsupported" - packages are orphaned (the MaintainerUID field in the Packages - table is set to NULL). - -- html/packages.php - PHP script to search the package database. It should support - searching by name, category, maintainer, popularity, etc. It - should resemble the packages.php script on archlinux.org. A - checkbox should be included next to each package to allow - users to flag a package out of date, adopt it, and vote for - it (and reverse operations). - -- html/pkgsubmit.php - This is the PHP script that allows users to upload a new package. - The package format will be a tgz containing the PKGBUILD, - scriptlets, and patches necessary to build the package from - source. Initially, the user submitting the package can select - its category (network, devel, etc) but that can be modified - later by the adopting TU. The script makes appropriate entries - into the database (and perhaps notifies interested users of the - new package). - +AUR Web Interface +============== Terms and Definitions: -====================== -AUR - Arch Linux User-Community Repository - Includes: - - the AUR web site, - - the [unsupported] 'repository' - - the [community] repository managed by the TUs +================ +AUR - Arch User Repository + Repository made up of a collection of build scripts that are + created and submitted by the Arch community. TU - Trusted User A user that can add binary packages to the [community] repository and administer AUR. [unsupported] - The collection of package build files hosted via the AUR web - site. + The collection of package build files hosted via the AUR website. +File Hierachy +========= + +Directory Layout: +------------------- +./html - DocumentRoot for AUR, where the PHP scripts live. +./html/css - CSS for AUR appearance +./html/css/navbar - CSS for Arch navigation bar appearance +./html/images - Any AUR images live here. +./lib - Supporting PHP include files. Access denied to Apache. +./locale +./template - Where most of the html markup resides and minimal + amount of PHP scripting. +./template/stats + +./html Files: +------------- +account.php - + PHP script to handle registering for a new account. It prompts + the visitor for account information: desired username, E-mail, + password, real name, IRC nick, and default language. The info is + recorded in the Users table. + + A logged-in user can change any of their own account information. If a + TU or Developer is logged into the system, they can search for and + edit accounts. A TU can change an account to a TU or User account. A + Developer can also change an account to the Developer type. TUs and + Developers are able to suspend accounts. If an account is suspended, + all packages are orphaned (the MaintainerUID field in the Packages + table is set to NULL). + +addvote.php - + A form to submit proposals relating to the AUR. Only accessible to TUs + and Developers. Can be used to vote on a potential new TU, or any + other proposal that needs a vote. Length of the vote can be specified. + +index.php - + Main page for the AUR. Provides links to all other pages in the AUR. + Gives a brief synopsis of what the AUR is and where to go for more + information. + +logout.php - + Logs out a logged-in user. Clears the session id from the Sessions + table and unsets the cookie. + +packages.php - + Page used to search the package database. Supports searching by name, + category, maintainer, popularity, etc. Also provides the ability to go + to a package page which has specific information for that package. + A specific package page includes the name, description, votes, etc. + As well as the ability to perform actions on the packages, such as + flagging or leaving a comment on the package. + +passreset.php - + A page for a user to enter their e-mail and receive a reset e-mail to + replace the forgotten password. + +pkgsubmit.php - + Page for users to upload a new package. Only allows upload of a + tarball that has been compressed with gzip. Tarball must contain the + PKGBUILD, scriptlets, and any other files necessary to build the + package from source. The user can select a category for the package. + The page makes appropriate entries into the database for tracking the + newly added source package and associated information. + +rpc.php - + A frontend for tools to obtain raw information from the AUR. Features + the ability to search for a package, return information on a package, + return information on multiple packages, and search for a specific + package maintainer. Functionality through HTTP GET. + +rss.php - + Generates RDF Site Summary (RSS) feed with the latest packages updated + in the AUR. Lists most recent 20 packages. Includes package name, link + to package page, package description, time of update, source listing, + maintainer name. + +tu.php - + Page only available to TUs and Developers. Shows ongoing votes for + proposals and past votes for proposals. Current votes can be voted on + with a "Yes" vote, "No" vote, or an "Abstain" vote. Developers and TUs + can only vote once. Cannot vote on a proposal about themselves. + +voters.php - + Page only available to TUs and Developers. Shows list of users that + voted for a specific package. Each username links to the user's + account information page. |