summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authoryhfudev2017-11-05 07:02:35 -0500
committeryhfudev2017-11-05 07:02:35 -0500
commitd927092ef79782f617789488697f8b3d925d6bc0 (patch)
tree03111e3d09ca3219ce05b915ef1f185021e4c4ab
downloadaur-d927092ef79782f617789488697f8b3d925d6bc0.tar.gz
Initial import
-rw-r--r--.SRCINFO42
-rw-r--r--PKGBUILD126
-rw-r--r--hustoj.install7
-rwxr-xr-xsethustoj.sh73
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
+