diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2010-07-19 14:05:35 +0000 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2010-07-19 14:05:35 +0000 |
commit | daa995c72b254d849b41ec8f1e61c50e0ed70bac (patch) | |
tree | 8ec696528599c8a1a15a90553a0b8b4ef559cb47 /www-apps/moodle | |
parent | Fix for bug #313359. Thanks Diego for reporting and Xartisius for suggestions... (diff) | |
download | gentoo-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/ChangeLog | 11 | ||||
-rw-r--r-- | www-apps/moodle/files/config.php | 29 | ||||
-rw-r--r-- | www-apps/moodle/files/postinstall-en.txt | 172 | ||||
-rw-r--r-- | www-apps/moodle/files/postinstall-nodb-en.txt | 6 | ||||
-rw-r--r-- | www-apps/moodle/metadata.xml | 9 | ||||
-rw-r--r-- | www-apps/moodle/moodle-1.9.9.ebuild | 121 |
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 +} |