summaryrefslogtreecommitdiffstats
path: root/web/README
diff options
context:
space:
mode:
Diffstat (limited to 'web/README')
-rw-r--r--web/README271
1 files changed, 94 insertions, 177 deletions
diff --git a/web/README b/web/README
index 37a224ec..96aade5a 100644
--- a/web/README
+++ b/web/README
@@ -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.