summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2010-07-19 14:05:35 +0000
committerAnthony G. Basile <blueness@gentoo.org>2010-07-19 14:05:35 +0000
commitdaa995c72b254d849b41ec8f1e61c50e0ed70bac (patch)
tree8ec696528599c8a1a15a90553a0b8b4ef559cb47 /www-apps/moodle
parentFix for bug #313359. Thanks Diego for reporting and Xartisius for suggestions... (diff)
downloadgentoo-2-daa995c72b254d849b41ec8f1e61c50e0ed70bac.tar.gz
gentoo-2-daa995c72b254d849b41ec8f1e61c50e0ed70bac.tar.bz2
gentoo-2-daa995c72b254d849b41ec8f1e61c50e0ed70bac.zip
New ebuild by Anthony G. Basile. Bug #104275
(Portage version: 2.1.8.3/cvs/Linux x86_64)
Diffstat (limited to 'www-apps/moodle')
-rw-r--r--www-apps/moodle/ChangeLog11
-rw-r--r--www-apps/moodle/files/config.php29
-rw-r--r--www-apps/moodle/files/postinstall-en.txt172
-rw-r--r--www-apps/moodle/files/postinstall-nodb-en.txt6
-rw-r--r--www-apps/moodle/metadata.xml9
-rw-r--r--www-apps/moodle/moodle-1.9.9.ebuild121
6 files changed, 348 insertions, 0 deletions
diff --git a/www-apps/moodle/ChangeLog b/www-apps/moodle/ChangeLog
new file mode 100644
index 000000000000..cc9c86ec7d99
--- /dev/null
+++ b/www-apps/moodle/ChangeLog
@@ -0,0 +1,11 @@
+# ChangeLog for www-apps/moodle
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/www-apps/moodle/ChangeLog,v 1.1 2010/07/19 14:05:32 blueness Exp $
+
+*moodle-1.9.9 (19 Jul 2010)
+
+ 19 Jul 2010; Anthony G. Basile <blueness@gentoo.org> +moodle-1.9.9.ebuild,
+ +files/config.php, +files/postinstall-en.txt,
+ +files/postinstall-nodb-en.txt, +metadata.xml:
+ New ebuild by Anthony G. Basile. Bug #104275
+
diff --git a/www-apps/moodle/files/config.php b/www-apps/moodle/files/config.php
new file mode 100644
index 000000000000..c959b4aa457e
--- /dev/null
+++ b/www-apps/moodle/files/config.php
@@ -0,0 +1,29 @@
+<?PHP
+unset($CFG);
+$CFG = new stdClass();
+
+$CFG->dbtype = 'mydb';
+$CFG->dbhost = 'localhost';
+$CFG->dbname = 'moodle_db';
+$CFG->dbuser = 'moodle_user';
+$CFG->dbpass = 'moodle_pass';
+$CFG->prefix = 'mdl_';
+
+$CFG->dbpersist = false;
+
+$CFG->wwwroot = 'http://localhost/moodle';
+$CFG->dirroot = '/var/www/localhost/htdocs/moodle';
+$CFG->dataroot = '/var/www/localhost/moodle' ;
+
+$CFG->directorypermissions = 02777;
+
+$CFG->admin = 'admin';
+
+if (file_exists("$CFG->dirroot/lib/setup.php")) {
+ include_once("$CFG->dirroot/lib/setup.php");
+} else {
+ echo "<p>Could not find this file: $CFG->dirroot/lib/setup.php</p>";
+ echo "<p>Please supply this file or reinstall moodle</p>";
+ die;
+}
+?>
diff --git a/www-apps/moodle/files/postinstall-en.txt b/www-apps/moodle/files/postinstall-en.txt
new file mode 100644
index 000000000000..5fe772f27e38
--- /dev/null
+++ b/www-apps/moodle/files/postinstall-en.txt
@@ -0,0 +1,172 @@
+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
diff --git a/www-apps/moodle/files/postinstall-nodb-en.txt b/www-apps/moodle/files/postinstall-nodb-en.txt
new file mode 100644
index 000000000000..91269941d185
--- /dev/null
+++ b/www-apps/moodle/files/postinstall-nodb-en.txt
@@ -0,0 +1,6 @@
+You have not specified which database you are going to use.
+You are on your own! Go to
+
+ http://docs.moodle.org/en/Installing_Moodle
+
+and follow the instructions there.
diff --git a/www-apps/moodle/metadata.xml b/www-apps/moodle/metadata.xml
new file mode 100644
index 000000000000..3cf0cd5be0b1
--- /dev/null
+++ b/www-apps/moodle/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>web-apps</herd>
+<maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+</maintainer>
+</pkgmetadata>
diff --git a/www-apps/moodle/moodle-1.9.9.ebuild b/www-apps/moodle/moodle-1.9.9.ebuild
new file mode 100644
index 000000000000..6fe973e75a68
--- /dev/null
+++ b/www-apps/moodle/moodle-1.9.9.ebuild
@@ -0,0 +1,121 @@
+# 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
+}