--- /dev/null
+NEW INSTALLS
+
+0 Check to see if webapp-config automatically installed
+ moodle for you in /var/www/localhost/htdocs. You should
+ see a directory in there called moodle. If it didn't
+ install it manually:
+
+ webapp-config -d moodle -I moodle 1.9.9
+
+1 Edit the config.php file found at
+
+ /var/www/localhost/htdocs/moodle/config.php
+
+ You should probably change the database password,
+ $CFG->dbpass = 'moodle_pass' to something more
+ obscure. Also, if your system has a FQDN, change
+ the $CFG->wwwroot = 'http://localhost/moodle'
+ to match the URL of your moodle installation.
+
+
+ IF YOU ARE USING MYSQL, do step 2a
+ IF YOU ARE USING POSTGRESQL, do step 2b
+
+
+2a Create a new mysql database and account with the
+ appropriate privileges. Make sure the username,
+ password and database match their values in
+ config.php from step 1.
+
+ Connect to your mysql server using
+
+ mysql -p -u root
+
+ and at the mysql> prompt issue the following commands
+
+ CREATE DATABASE moodle_db;
+ GRANT ALL ON moodle_db.*
+ TO moodle_user@localhost
+ IDENTIFIED BY 'moodle_pass';
+ flush privileges;
+
+2b Issue the following commands at a shell, making sure
+ the username, password and database match their values
+ in config.php from step 1.
+
+ su - postgres
+ psql -c "create user moodle_user createdb;" template1
+ psql -c "alter user moodle_user with encrypted password 'moodle_pass';" template1
+ psql -c "create database moodle_db with encoding 'unicode';" -U moodle_user template1
+ psql -c "alter user moodle_user nocreatedb;" template1
+ su - root
+ /etc/init.d/postgresql-8.4 reload
+
+ NOTE: Moodle docs say that moodle only works with
+ postgresql-7, but I've used it with 8 no problems.
+
+3 Direct your browser to the URL in step 1. You should see
+ the license agreement. Click "Yes" to continue.
+
+4 You are now about to install. Click the checkbox for
+ "Unattended operation" and "Continue" to start. Follow
+ the wizard as you "Setup administrator account" and configure
+ the "Front Page settings".
+
+5 You now have a working installation. Before putting it
+ into production, you'll probably want to check that
+ everything is sane. In the "Site Administration" block,
+ click on
+
+ Server -> Environment
+
+ Make sure that you've got the green okay on all the
+ Server Checks. If you don't, click on the ? icons for
+ popup help.
+
+6 Add a cron-job to root's crontab.
+
+ su - root
+ crontab -e # fcrontab -e if you use fcron
+
+ then add the line
+
+ */30 * * * * root php -q /var/www/localhost/htdocs/moodle/admin/cron.php > /dev/null
+
+7 For more information on installing moodle, see
+
+ http://docs.moodle.org/en/Installing_Moodle
+
+ For information on working with moodle, see
+
+ http://moodle.org/support/
+
+=================================================================
+
+UPGRADES
+
+ TODO - When the next release is out, I will fill this
+ section in.
+
+=================================================================
+
+UNINSTALL
+
+1 Make sure you really want to do this. I mean REALLY!
+ After step 3 you will be past the point of no return.
+
+2 If you just want to uninstall the webapp, do the following
+ and no more!
+
+ emerge --unmerge moodle
+
+ Your data is still in the db and in the moodledata dir.
+
+
+ !!!!!!!!! POINT OF NO RETURN !!!!!!!!!
+
+3 Uninstall the uploaded files
+
+ rm -rf /var/lib/moodledata
+
+
+ IF YOU ARE USING MYSQL, do step 4a
+ IF YOU ARE USING POSTGRESQL, do step 4b
+
+
+4a Connect to your mysql server using 'mysql -p -u root' and
+ at the mysql> prompt issue the following commands:
+
+ DROP DATABASE moodle_db;
+ DROP USER moodle_user@localhost ;
+
+4b Issue the following commands
+
+ su - postgres
+ psql -c "drop database moodle_db;" template1
+ psql -c "drop user moodle_user;" template1
+
+5 Remove the root cron-job
+
+ su - root
+ crontab -e # fcrontab -e if you use fcron
+
+ and delete the line added above.
+
+=================================================================
+
+ADDITIONAL PHP REQUIREMENTS
+
+ Moodle allows for many method of authentication. To see
+ what these are, in the "Site Administration" block, click
+ on
+
+ Users -> Authentication -> Manage Authentication
+
+ Moodle will try to authenticate by each method in order
+ until it either succeeds or exhausts the list and fails.
+
+ In order to use some of these methods, you need to make
+ sure PHP was compiled with the correct support. You will
+ know that you do not have the correct support compiled in
+ if authentication by all previous methods fails, and you
+ encounter a method for which PHP does not have support.
+ An error will be thrown and reported in the web page.
+
+ Currently, the ebuild has support for the following
+
+ Auth Method USE flag
+
+ IMAP(S) or POP3(S) imap
+ LDAP or CAS ldap
+ External database odbc
+ RADIUS radius
--- /dev/null
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-apps/moodle/moodle-1.9.9.ebuild,v 1.1 2010/07/19 14:05:32 blueness Exp $
+
+EAPI="2"
+
+inherit versionator webapp depend.php
+
+AVC=( $(get_version_components) )
+MY_BRANCH="stable${AVC[0]}${AVC[1]}"
+DBTYPES="mysql postgres"
+AUTHMODES="imap ldap odbc radius"
+PHPFLAGS="${DBTYPES} ${AUTHMODES}"
+
+DESCRIPTION="The Moodle Course Management System"
+HOMEPAGE="http://moodle.org"
+SRC_URI="http://download.moodle.org/${MY_BRANCH}/${P}.tgz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+#SLOT empty due to webapp
+IUSE="${PHPFLAGS} vhosts"
+
+# No forced dependency on
+# mysql? ( virtual/mysql )
+# postgres? ( dev-db/postgresql-server-7* )
+# which may live on another server
+DEPEND=""
+RDEPEND="virtual/cron"
+
+need_php5_httpd
+
+pkg_setup() {
+ webapp_pkg_setup
+
+ # How many dbs were selected? If one and only one, which one is it?
+ MYDB=""
+ DBCOUNT=0
+ for db in ${DBTYPES}; do
+ if use ${db}; then
+ MYDB=${db}
+ DBCOUNT=$(($DBCOUNT+1))
+ fi
+ done
+
+ if [[ ${DBCOUNT} -ne 1 ]]; then
+ MYDB=""
+ ewarn
+ ewarn "\033[1;33m**************************************************\033[1;33m"
+ ewarn "No db, or multiple dbs, selected in your USE flags,"
+ ewarn "You will have to choose your database manually."
+ ewarn "\033[1;33m**************************************************\033[1;33m"
+ ewarn
+ fi
+
+ local flags="ctype curl gd iconv ssl tokenizer xml xmlrpc zlib"
+
+ for flg in ${PHPFLAGS}; do
+ if use ${flg}; then
+ flags="${flags} ${flg}"
+ fi
+ done
+
+ if ! PHPCHECKNODIE="yes" require_php_with_use ${flags} ; then
+ eerror
+ eerror "\033[1;31m************************************************************\033[1;31m"
+ eerror "Re-install ${PHP_PKG} with the following flags:"
+ eerror " ${flags}"
+ eerror "\033[1;31m************************************************************\033[1;31m"
+ eerror
+ die
+ fi
+}
+
+src_prepare() {
+ rm COPYING.txt
+ cp "${FILESDIR}"/config.php .
+
+ #
+ # Moodle expect postgres7, not postgres
+ #
+ MYDB=${MYDB/postgres/postgres7}
+ if [[ ${DBCOUNT} -eq 1 ]] ; then
+ sed -i -e "s|mydb|${MYDB}|" config.php
+ fi
+}
+
+src_install() {
+ webapp_src_preinst
+
+ local MOODLEDATA="${MY_HOSTROOTDIR}"/moodle
+ dodir ${MOODLEDATA}
+ webapp_serverowned -R "${MOODLEDATA}"
+
+ local MOODLEROOT="${MY_HTDOCSDIR}"
+ insinto ${MOODLEROOT} || die "Unable to insinto ${MOODLEROOT}"
+ doins -r *
+
+ webapp_configfile "${MOODLEROOT}"/config.php
+
+ if [[ ${DBCOUNT} -eq 1 ]]; then
+ webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt
+ else
+ webapp_postinst_txt en "${FILESDIR}"/postinstall-nodb-en.txt
+ fi
+
+ webapp_src_install
+}
+
+pkg_postinst() {
+ einfo
+ einfo "\033[1;32m**************************************************\033[1;32m"
+ einfo
+ einfo "To see the post install instructions, do"
+ einfo
+ einfo " webapp-config --show-postinst ${PN} ${PV}"
+ einfo
+ einfo "\033[1;32m**************************************************\033[1;32m"
+ einfo
+}