[aur-dev] [PATCH] Updated README for local AUR installation

Thayer Williams thayerw at gmail.com
Tue Feb 16 11:20:12 EST 2010


I've updated the web/README to make the instructions a bit clearer on
setting up a test environment of the AUR.

Also, I plan to submit several patches for HTML/template updates over
the next couple of weeks so please let me know if this patch format is
not correct.

Cheers

Signed-off-by: Thayer Williams <thayerw at gmail.com>
---
 web/README |  373 ++++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 210 insertions(+), 163 deletions(-)

diff --git a/web/README b/web/README
index 041b521..5be144d 100644
--- a/web/README
+++ b/web/README
@@ -1,191 +1,238 @@
-Setup on Arch Linux:
-====================
-1) Install Apache, MySQL, PHP, and git
-  # pacman -Sy apache mysql php git
+AUR Development HOWTO
+=====================

-2) Set a local 'hostname' of 'aur'
- - Edit /etc/hosts and append 'aur' to loopback address
-   127.0.0.1    localhost aur
+The following instructions will assist in setting up a test environment for AUR
+development. These steps assume you are using Arch Linux; if this is not the
+case, consult your distribution's documentation for package installation, etc..

-3) Configure Apache
+If you require further assistance, please post to the AUR mailing lists:

- - Edit /etc/httpd/conf/httpd.conf and enable PHP support
-   by adding the following lines.
+    http://mailman.archlinux.org/mailman/listinfo/aur-dev
+    http://mailman.archlinux.org/mailman/listinfo/aur-general
+
+
+Getting started
+---------------
+
+AUR development will require the installation of the following:
+
+    # pacman -S apache mysql php php-apache php-pear git
+
+Refer to the Arch Wiki LAMP article if you'd like some assistance setting up
+an http/mysql/php server configuration:
+
+    http://wiki.archlinux.org/index.php/LAMP
+
+
+Configure Apache
+----------------
+
+Enable PHP support by editing /etc/httpd/conf/httpd.conf and adding the
+following lines to the appropriate sections:

    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 File_Find 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
-   File_Find PEAR module: http://pear.php.net/package/File_Find
-
- - Install the File_Find PEAR package:
-   # pear install File_Find
-
- - 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.
-
- - AUR does not work properly with PHP's short open tag enabled.
-   Be sure you have this in php.ini:
-   short_open_tag = Off
-
-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 at 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.proto file to config.inc. Modify as needed.
-   # cd ~/aur/web/lib/
-   # cp config.inc.proto config.inc
-
-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
+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>
+
+
+Configure PHP
+-------------
+
+Make sure you have mysql and json enabled in PHP by editing /etc/php/php.ini
+and uncommenting/adding these lines:
+
+    extension=mysql.so
+    extension=json.so
+
+AUR requires PEAR (installed above) and the File_Find 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
+    File_Find PEAR module: http://pear.php.net/package/File_Find
+
+Install the File_Find PEAR package:
+
+    # pear install File_Find
+
+If not already present, put PEAR in your php include_path in php.ini:
+
+    include_path = ".:/usr/share/pear"
+
+AUR does not work properly with the PHP short_open_tag enabled so make sure
+this is disabled in /etc/php/php.ini:
+
+    short_open_tag = Off
+
+
+Configure MySQL
+---------------
+
+Start the MySQL service:
+
+    # /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 at localhost identified by 'aur';
+    mysql> FLUSH PRIVILEGES;
+    mysql> quit
+
+Load the schema file (when prompted use 'aur' as password):
+
+    $ mysql -uaur -p AUR < ~/aur/support/schema/aur-schema.sql
+
+Optionally load some test data for development purposes:
+
+    # pacman -S words mysql-python fortune-mod
+    $ cd ~/aur/support/schema/
+    $ python gendummydata.py dummy-data.sql
+    $ bzip2 dummy-data.sql
+    $ bzcat dummy-data.sql.bz2 | mysql -uaur -p AUR
+
+    (again use 'aur' as password when prompted)
+
+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 -uaur -p AUR
+    mysql> UPDATE Users SET Email = RAND() * RAND();
+
+
+Set a local hostname of 'aur'
+-----------------------------
+
+Edit /etc/hosts and append 'aur' to loopback address:
+
+    127.0.0.1    localhost aur
+
+
+Clone the AUR project (using the MYUSER from above):
+----------------------------------------------------
+
+    $ cd
+    $ git clone git://projects.archlinux.org/aur.git
+
+
+Enable the AUR web config
+-------------------------
+
+Copy the config.inc.proto file to config.inc and modify as needed:
+
+    $ cd ~/aur/web/lib/
+    $ cp config.inc.proto config.inc
+
+
+Final Steps
+-----------
+
+Point your web browser to http://aur
+
+If you encounter any problems (such as 403 Forbidden), refer to the
Arch Wiki LAMP
+article for tips: http://wiki.archlinux.org/index.php/LAMP
+
+
+
+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
+There is also a template to model the site's top pages in template.phps
+

+Scripts
+-------

-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.
+  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.
+  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.
+  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).
+  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).
+  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).
-
-
-Terms and Definitions:
-======================
+  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).
+
+
+Terms and Definitions
+=====================
+
 AUR - Arch Linux User-Community Repository
-	Includes:
-	- the AUR web site,
-	- the [unsupported] 'repository'
-	- the [community] repository managed by the TUs
+
+    This includes:
+        - the AUR web site,
+        - the [unsupported] 'repository'
+        - the [community] repository managed by the TUs

 TU - Trusted User
-	A user that can add binary packages to the [community]
-	repository and administer AUR.
+
+    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 web site.

-- 
1.6.6.1


More information about the aur-dev mailing list