aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--www/Makefile1
-rw-r--r--www/moodle44/Makefile60
-rw-r--r--www/moodle44/distinfo3
-rw-r--r--www/moodle44/files/pkg-message.in59
-rw-r--r--www/moodle44/pkg-descr5
5 files changed, 128 insertions, 0 deletions
diff --git a/www/Makefile b/www/Makefile
index ca89da5bfc7c..8cebe5a998ff 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -436,6 +436,7 @@
SUBDIR += moodle41
SUBDIR += moodle42
SUBDIR += moodle43
+ SUBDIR += moodle44
SUBDIR += morty
SUBDIR += multisort
SUBDIR += multiwatch
diff --git a/www/moodle44/Makefile b/www/moodle44/Makefile
new file mode 100644
index 000000000000..31194662467a
--- /dev/null
+++ b/www/moodle44/Makefile
@@ -0,0 +1,60 @@
+PORTNAME= moodle
+PORTVERSION= 4.4
+CATEGORIES= www education
+MASTER_SITES= SF/moodle/Moodle/stable404/
+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]* moodle42-4.2.[0-9]* moodle43-4.3.[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 <bsd.port.mk>
diff --git a/www/moodle44/distinfo b/www/moodle44/distinfo
new file mode 100644
index 000000000000..c08120a9e335
--- /dev/null
+++ b/www/moodle44/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1713748123
+SHA256 (moodle-4.4.tgz) = 216e3b216b5d6e4064f20c3a78441bfc2f7f051c036c9a62ad79dc1860f2dfeb
+SIZE (moodle-4.4.tgz) = 71137364
diff --git a/www/moodle44/files/pkg-message.in b/www/moodle44/files/pkg-message.in
new file mode 100644
index 000000000000..5282847317fb
--- /dev/null
+++ b/www/moodle44/files/pkg-message.in
@@ -0,0 +1,59 @@
+[
+{ type: install
+ message: <<EOM
+1) Create a user and a database for Moodle to store all
+ its tables in (or choose an existing database).
+ It doesn't matter what the database or user names are,
+ as this will be configured in a later step.
+ NOTE: this package assumes that either the phpX-pgsql,
+ phpX-mysql, or phpX-mssql packages are installed.
+
+2) Add the following to your Apache configuration file
+ httpd.conf, and restart the server:
+
+ Alias /moodle %%PREFIX%%/%%MOODLEDIR%%/
+ AcceptPathInfo On
+ <Directory %%PREFIX%%/%%MOODLEDIR%%/>
+ AllowOverride None
+ Require all granted
+ </Directory>
+
+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: <<EOM
+If you are upgrading from an earlier version of Moodle, check out
+possible additional steps at:
+
+ https://docs.moodle.org/400/en/Upgrading
+
+If you have real trouble, please visit the Moodle course
+"Using Moodle" on moodle.org.
+EOM
+}
+]
diff --git a/www/moodle44/pkg-descr b/www/moodle44/pkg-descr
new file mode 100644
index 000000000000..8d24b9357db9
--- /dev/null
+++ b/www/moodle44/pkg-descr
@@ -0,0 +1,5 @@
+Moodle is a course management system (CMS) - a free, Open Source software
+package designed using sound pedagogical principles, to help educators
+create effective online learning communities. You can use it on any
+computer you have handy (including webhosts), yet it can scale from a
+single-teacher site to a 40,000-student University.