diff --git a/www/Makefile b/www/Makefile index ccebf0450f69..fc63cd0781ee 100644 --- a/www/Makefile +++ b/www/Makefile @@ -449,6 +449,7 @@ SUBDIR += moodle43 SUBDIR += moodle44 SUBDIR += moodle45 + SUBDIR += moodle50 SUBDIR += morty SUBDIR += multisort SUBDIR += multiwatch diff --git a/www/moodle50/Makefile b/www/moodle50/Makefile new file mode 100644 index 000000000000..fc5aef9bb420 --- /dev/null +++ b/www/moodle50/Makefile @@ -0,0 +1,62 @@ +PORTNAME= moodle +PORTVERSION= 5.0 +CATEGORIES= www education +MASTER_SITES= https://packaging.moodle.org/stable500/ \ + LOCAL/wen +PKGNAMESUFFIX= ${PKGORIGIN:T:S/moodle//}${PHP_PKGNAMESUFFIX} + +MAINTAINER= wen@FreeBSD.org +COMMENT= Course management system based on social constructionism +WWW= https://www.moodle.org/ + +LICENSE= GPLv3 + +CONFLICTS= moodle41-4.1.[0-9]* moodle43-4.3.[0-9]* moodle44-4.4.[0-9]* \ + moodle45-4.5.[0-9]* + +USES= cpe php:flavors tar:tgz +USE_PHP= ctype curl dom exif fileinfo filter gd \ + iconv intl mbstring opcache \ + session simplexml soap sodium tokenizer \ + xml xmlreader xmlrpc zip zlib + +WRKSRC= ${WRKDIR}/moodle + +OPTIONS_SINGLE= BACKEND +OPTIONS_SINGLE_BACKEND= MYSQL PGSQL +OPTIONS_DEFINE= LDAP +OPTIONS_DEFAULT= MYSQL + +MYSQL_USES= mysql +MYSQL_USE= php=mysqli +PGSQL_USE= php=pgsql +LDAP_USE= php=ldap + +NO_BUILD= yes +PLIST= ${WRKDIR}/plist +SUB_FILES= pkg-message +SUB_LIST= MOODLEDIR=${MOODLEDIR} \ + MOODLEDATADIR=${MOODLEDATADIR} + +MOODLEDIR?= www/moodle +MOODLEDATADIR?= moodledata + +pre-install: + @${ECHO_CMD} "@owner ${WWWOWN}" >> ${PLIST} + @${ECHO_CMD} "@group ${WWWGRP}" >> ${PLIST} + @${ECHO_CMD} "@mode 755" >> ${PLIST} + @${ECHO} @dir ${MOODLEDATADIR} >> ${PLIST} + @${ECHO_CMD} "@mode" >> ${PLIST} + @${ECHO_CMD} "@group" >> ${PLIST} + @${ECHO_CMD} "@owner" >> ${PLIST} + +# Here for safety I do not set moodle diretory 0755 permission +# It require user write config.php manually then. + @${FIND} -s -d ${WRKSRC} -type f | ${SED} "s?${WRKSRC}?${MOODLEDIR}?g" >>${PLIST} + @${FIND} -s -d ${WRKSRC} -type d | ${SED} "s?${WRKSRC}?@dir ${MOODLEDIR}?g" >> ${PLIST} + +do-install: + @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${MOODLEDIR} + @${INSTALL} -d ${STAGEDIR}${PREFIX}/${MOODLEDATADIR} + +.include diff --git a/www/moodle50/distinfo b/www/moodle50/distinfo new file mode 100644 index 000000000000..8fedb961d8c4 --- /dev/null +++ b/www/moodle50/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1744622715 +SHA256 (moodle-5.0.tgz) = f28f6a45174691d2ecd19b073fc1e3bf82c04ca997370058df29f2f9c433d99e +SIZE (moodle-5.0.tgz) = 74123598 diff --git a/www/moodle50/files/pkg-message.in b/www/moodle50/files/pkg-message.in new file mode 100644 index 000000000000..5282847317fb --- /dev/null +++ b/www/moodle50/files/pkg-message.in @@ -0,0 +1,59 @@ +[ +{ type: install + message: < + AllowOverride None + Require all granted + + +3) Visit your Moodle site with a browser (i.e., + http://your.server.com/moodle/), and you should + be taken to the install.php script, which will lead + you through creating a config.php file and then + setting up Moodle, creating an admin account, etc. + + At one step, you will get a message saying that the + installer script was not able to automatically create + the config.php file. Just download it and copy it to + %%PREFIX%%/%%MOODLEDIR%%/config.php. Beware that it + will contain the database password in cleartext, so + set up whatever file permissions you deem more adequate. + For instance, user=root, group=www, mask=640. + +4) Set up a cron task to invoke the file admin/cron.php + every five minutes or so. For instance: + */5 * * * * fetch http://your.server.com/moodle/admin/cron.php + +For more information, see the INSTALL DOCUMENTATION: + + http://docs.moodle.org/en/Installing_Moodle + +It may be worth reading the installation docs even if Moodle seems +to be working at first, to ensure your PHP settings and database +configuration will allow Moodle to operate properly. +EOM +} +{ type: upgrade + message: <