diff options
author | yhfudev | 2017-11-05 07:02:35 -0500 |
---|---|---|
committer | yhfudev | 2017-11-05 07:02:35 -0500 |
commit | d927092ef79782f617789488697f8b3d925d6bc0 (patch) | |
tree | 03111e3d09ca3219ce05b915ef1f185021e4c4ab | |
download | aur-d927092ef79782f617789488697f8b3d925d6bc0.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 42 | ||||
-rw-r--r-- | PKGBUILD | 126 | ||||
-rw-r--r-- | hustoj.install | 7 | ||||
-rwxr-xr-x | sethustoj.sh | 73 |
4 files changed, 248 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..2f6f08e8b2d3 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,42 @@ +# Generated by mksrcinfo v8 +# Sun Nov 5 04:57:50 UTC 2017 +pkgbase = hustoj-git + pkgdesc = HUST Online Judge + pkgver = r3120.58b04b80 + pkgrel = 1 + url = https://github.com/zhblue/hustoj.git + install = hustoj.install + arch = i686 + arch = x86_64 + arch = armv6h + arch = armv7h + arch = arm + license = GPL + makedepends = git + makedepends = libmariadbclient + options = emptydirs + source = hustoj-git::git+https://github.com/zhblue/hustoj.git + source = hustoj.install + source = sethustoj.sh + sha256sums = SKIP + sha256sums = 4fdf2875aa03b98ecc0a6e732159653542930b5f26b1877388faa96ee83b0435 + sha256sums = 7fe99d33f33b7e9a431050898ed8333ac5a1377d8e8010531b6c7721902de642 + +pkgname = ojsvr-hust-judge-git + pkgdesc = HUST Online Judge binaries + provides = ojsvr-hust-judge + conflicts = ojsvr-hust-judge + +pkgname = ojsvr-hust-web-git + pkgdesc = HUST Online Judge web UI + install = hustoj.install + arch = any + depends = php + depends = php-fpm + depends = php-gd + optdepends = nginx: Web server for serving Wordpress + optdepends = apache: Web server for serving Wordpress + optdepends = mariadb: Database server + provides = ojsvr-hust-web + conflicts = ojsvr-hust-web + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..62922e0c8e73 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,126 @@ +# Maintainer: Yunhui Fu <yhfudev@gmail.com> + +pkgbase=hustoj-git +pkgname=hustoj-git + +# Dirty hack as AUR dont support split-packages +true && pkgname=('ojsvr-hust-judge-git' 'ojsvr-hust-web-git') + +pkgver=r3120.58b04b80 +pkgrel=1 +pkgdesc='HUST Online Judge' +arch=('i686' 'x86_64' 'armv6h' 'armv7h' 'arm') +url='https://github.com/zhblue/hustoj.git' +license=('GPL') +makedepends=('git' 'libmariadbclient') +options=('emptydirs') +install="hustoj.install" +source=( + #"${pkgbase}-${pkgver}.tar.gz::https://github.com/zhblue/hustoj/archive/${pkgver}.tar.gz" + "${pkgbase}::git+https://github.com/zhblue/hustoj.git" + "hustoj.install" + "sethustoj.sh" + ) +sha256sums=('SKIP' + '4fdf2875aa03b98ecc0a6e732159653542930b5f26b1877388faa96ee83b0435' + '7fe99d33f33b7e9a431050898ed8333ac5a1377d8e8010531b6c7721902de642' + ) + +pkgver_git() { + cd "${srcdir}/${pkgbase}" + #local ver="$(git show | grep commit | awk '{print $2}' )" + #printf "r%s" "${ver//[[:alpha:]]}" + #echo ${ver:0:7} + echo "r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" +} + +pkgver() { + pkgver_git +} + +prepare() { + cd "${srcdir}/${pkgbase}" + msg "git fetch --all" + git remote set-url origin ${url} + git fetch --all + + case $CARCH in + i686|x86_64) + git checkout remotes/origin/master + ;; + armv6h|armv7h|arm) + git checkout remotes/origin/rpi + ;; + esac +} + +build() { + cd "${srcdir}/${pkgbase}" + cd trunk/core/judged + make + cd ../judge_client + make + cd ../sim/sim_2_77 + #make fresh + make exes +} + +package_ojsvr-hust-judge-git() { + pkgdesc="HUST Online Judge binaries" + conflicts=('ojsvr-hust-judge') + provides=("ojsvr-hust-judge") + + msg 'Preparing package ...' + + install -d "$pkgdir/usr/bin" + install -d "$pkgdir/usr/share" + + cp -r "${pkgbase}/trunk/install/" "$pkgdir/usr/share/hustoj" + + cd "${srcdir}/${pkgbase}" + cd trunk/core/judged + cp judged $pkgdir/usr/bin + chmod +x $pkgdir/usr/bin/judged + cd ../judge_client + cp judge_client $pkgdir/usr/bin + chmod +x $pkgdir/usr/bin/judge_client + cd ../sim/sim_2_77 + cp sim_c.exe $pkgdir/usr/bin/sim_c + cp sim_java.exe $pkgdir/usr/bin/sim_java + cp sim_pasc.exe $pkgdir/usr/bin/sim_pas + cp sim_text.exe $pkgdir/usr/bin/sim_text + cp sim_lisp.exe $pkgdir/usr/bin/sim_scm + chmod +x $pkgdir/usr/bin/sim* + cd .. + cp sim.sh $pkgdir/usr/bin + chmod +x $pkgdir/usr/bin/sim.sh + rm -f $pkgdir/usr/bin/sim_cc $pkgdir/usr/bin/sim_rb $pkgdir/usr/bin/sim_sh + ln -s sim_c $pkgdir/usr/bin/sim_cc + + cp ${srcdir}/sethustoj.sh "$pkgdir/usr/share/hustoj/" +} + +package_ojsvr-hust-web-git() { + pkgdesc="HUST Online Judge web UI" + conflicts=('ojsvr-hust-web') + provides=("ojsvr-hust-web") + arch=('any') + + install=hustoj.install + + depends=('php' 'php-fpm' 'php-gd') + optdepends=('nginx: Web server for serving Wordpress' + 'apache: Web server for serving Wordpress' + 'mariadb: Database server') + + msg 'Preparing package ...' + + install -d "$pkgdir/usr/share" + install -d "$pkgdir/usr/share/webapps" + + cp -r "${pkgbase}/trunk/web/" "$pkgdir/usr/share/webapps/hustoj" + chown http:http -R "$pkgdir/usr/share/webapps/hustoj" +} + +# vim: ts=2 sw=2 et: + diff --git a/hustoj.install b/hustoj.install new file mode 100644 index 000000000000..a74457bd7430 --- /dev/null +++ b/hustoj.install @@ -0,0 +1,7 @@ +post_install() { + ln -s /usr/share/webapps/hustoj /srv/http/ +} + +post_remove() { + rm -f /srv/http/hustoj +} diff --git a/sethustoj.sh b/sethustoj.sh new file mode 100755 index 000000000000..408cd6085c58 --- /dev/null +++ b/sethustoj.sh @@ -0,0 +1,73 @@ + +setup() { + #ln -s /usr/share/webapps/hustoj /srv/http/ + + # enable extension=pdo_mysql.so in file /etc/php/php.ini + # systemctl restart php-fpm + + useradd -m -u 1536 judge + cd /home/judge/ + mkdir etc data log + cp /usr/share/hustoj/java0.policy /home/judge/etc + cp /usr/share/hustoj/judge.conf /home/judge/etc + + if grep "OJ_SHM_RUN=0" etc/judge.conf ; then + mkdir run0 run1 run2 run3 + chown http:http run0 run1 run2 run3 + fi + + DBNAME=root + DBUSER=root + DBPASS=root + + printf "Input Database(MySQL) Username:" + read tmp + if test -n "$tmp"; then + DBUSER="$tmp" + fi + printf "Input Database(MySQL) Password:" + read tmp + if test -n "$tmp"; then + DBPASS="$tmp" + fi + DBNAME="${DBUSER}" + + sed -i "s/OJ_DB_NAME=jol/OJ_DB_NAME=$DBNAME/g" etc/judge.conf + sed -i "s/OJ_USER_NAME=root/OJ_USER_NAME=$DBUSER/g" etc/judge.conf + sed -i "s/OJ_PASSWORD=root/OJ_PASSWORD=$DBPASS/g" etc/judge.conf + sed -i "s/OJ_COMPILE_CHROOT=1/OJ_COMPILE_CHROOT=0/g" etc/judge.conf + chmod 700 etc/judge.conf + + sed -i "s/DB_NAME=\"jol\"/DB_NAME=\"$DBNAME\"/g" /usr/share/webapps/hustoj/include/db_info.inc.php + sed -i "s/DB_USER=\"root\"/DB_USER=\"$DBUSER\"/g" /usr/share/webapps/hustoj/include/db_info.inc.php + sed -i "s/DB_PASS=\"root\"/DB_PASS=\"$DBPASS\"/g" /usr/share/webapps/hustoj/include/db_info.inc.php + chmod 700 /usr/share/webapps/hustoj/include/db_info.inc.php + chown http:http /usr/share/webapps/hustoj/include/db_info.inc.php + chown http:http /usr/share/webapps/hustoj/upload data run0 run1 run2 run3 + if grep client_max_body_size /etc/nginx/nginx.conf ; then + echo "client_max_body_size already added" ; + else + sed -i "s:include /etc/nginx/mime.types;:client_max_body_size 80m;\n\tinclude /etc/nginx/mime.types;:g" /etc/nginx/nginx.conf + fi + + cp /usr/share/hustoj/db.sql /tmp/tmp-hustoj-db.sql + sed -e "s|create database jol;|CREATE DATABASE IF NOT EXISTS ${DBNAME};|g" \ + -e "s|use jol;|use ${DBNAME};|g" \ + -i /tmp/tmp-hustoj-db.sql + + mysql -h localhost -u$DBUSER -p$DBPASS < /tmp/tmp-hustoj-db.sql + echo "insert into $DBNAME.privilege values('admin','administrator','N');" | mysql -h localhost -u$DBUSER -p$DBPASS + + sed -i "s/post_max_size = 8M/post_max_size = 80M/g" /etc/php/php.ini + sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 80M/g" /etc/php/php.ini + + if grep "/usr/bin/judged" /etc/rc.local ; then + echo "auto start judged added!" + else + sed -e "s|exit 0|/usr/bin/judged\nexit 0|g" -i /etc/rc.local + fi + +} + +setup + |