summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorShane Chen2019-04-17 17:08:23 +0800
committerShane Chen2019-05-01 21:03:15 +0800
commitcafd47f4589ac56ea10d7322ca78961056aa1a84 (patch)
treed48821897784c526c781e84452d615d9da818ddc
parentaec6c02d1a3644c5fd69fc47ade4298464c3876b (diff)
downloadaur-cafd47f4589ac56ea10d7322ca78961056aa1a84.tar.gz
domjudge: new upstream release 7.0.0
-rw-r--r--.SRCINFO68
-rw-r--r--PKGBUILD124
-rw-r--r--domjudge-cgroup.service11
-rw-r--r--domjudge-domserver.conf2
-rw-r--r--domjudge-domserver.install11
-rw-r--r--domjudge-judgehost.conf4
-rw-r--r--domjudge-judgehostd.service3
-rw-r--r--domjudge-judgehostd@.service15
-rw-r--r--domjudge.install58
-rw-r--r--jsoncpp.patch25
10 files changed, 186 insertions, 135 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d0db5b61053f..db2ed367ff50 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,30 +1,60 @@
-# Generated by mksrcinfo v8
-# Sat Jul 30 17:22:36 UTC 2016
pkgbase = domjudge
- pkgdesc = programming contest jury system
- pkgver = 5.1.2
+ pkgdesc = an automated judge system to run programming contests
+ pkgver = 7.0.0
pkgrel = 1
- url = http://domjudge.sourceforge.net/
- install = domjudge.install
- arch = i686
+ url = http://www.domjudge.org/
arch = x86_64
license = GPL
makedepends = boost
- depends = php-apache
- depends = mysql
- depends = texlive-core
- depends = libcgroup
- depends = curl
- depends = jsoncpp
+ makedepends = composer
+ makedepends = inetutils
+ makedepends = libcgroup
+ makedepends = git
+ makedepends = jsoncpp
+ optdepends = mysql: to run database on current host
optdepends = phpmyadmin: to access database in an emergency
optdepends = ntp: to keep judgehosts clocks in sync
optdepends = beep: for notification of errors
- source = http://www.domjudge.org/releases/domjudge-5.1.2.tar.gz
+ source = https://www.domjudge.org/releases/domjudge-7.0.0.tar.gz
+ source = domjudge-domserver.conf
+ source = domjudge-judgehost.conf
source = domjudge-judgehostd.service
- source = jsoncpp.patch
- md5sums = a200a53f86596a8e89c76bbc014c1e66
- md5sums = 93cd5b10fc2636b664f2c17b4f34436f
- md5sums = 69e8aef0a5f9394fd0a4f42785d0732e
+ source = domjudge-judgehostd@.service
+ source = domjudge-cgroup.service
+ sha256sums = d794b313c622f16aca3e7bc2779b7b474ef271efff99546a5c309973e85c6dcf
+ sha256sums = c0dfd31c0d19856df324057ffb4f81d50fe765c48026d419ceaea71864663532
+ sha256sums = 06faeeea3e3abda5a53a9ae150c6289cd49062c9a22129436640d11a9948eed5
+ sha256sums = 9ed301acc46bcc4de0ac38fc7fa9abe13912deb64ff549dd68ada54b9158f680
+ sha256sums = 2b88ea6555d1887f4e27a863be151326955a2687c6388e81512517a56d009334
+ sha256sums = d0a921ca8f81b3550acc8fa27713624ca39540090c943293242dcc9cd85b8049
-pkgname = domjudge
+pkgname = domjudge-domserver
+ install = domjudge-domserver.install
+ arch = any
+ depends = curl
+ depends = php
+ depends = php-gd
+ depends = php-intl
+ depends = unzip
+ depends = zip
+ depends = apache
+
+pkgname = domjudge-docs
+ arch = any
+ depends = php
+
+pkgname = domjudge-judgehost
+ arch = x86_64
+ depends = libcgroup
+ depends = curl
+ depends = php
+ depends = unzip
+ depends = zip
+ depends = lsof
+
+pkgname = domjudge-submit
+ arch = x86_64
+ depends = curl
+ depends = jsoncpp
+ depends = file
diff --git a/PKGBUILD b/PKGBUILD
index 66315b77f3fb..742f2ff4a817 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,42 +1,102 @@
# Maintainer: Andrzej Giniewicz <gginiu@gmail.com>
-pkgname=domjudge
-pkgver=5.1.2
+pkgbase=domjudge
+pkgname=('domjudge-domserver' 'domjudge-docs' 'domjudge-judgehost' 'domjudge-submit')
+pkgver=7.0.0
pkgrel=1
-pkgdesc="programming contest jury system"
-arch=('i686' 'x86_64')
-url="http://domjudge.sourceforge.net/"
+pkgdesc="an automated judge system to run programming contests"
+arch=("$CARCH")
+url="http://www.domjudge.org/"
license=('GPL')
-depends=('php-apache' 'mysql' 'texlive-core' 'libcgroup' 'curl' 'jsoncpp')
-makedepends=('boost')
-optdepends=('phpmyadmin: to access database in an emergency'
- 'ntp: to keep judgehosts clocks in sync'
- 'beep: for notification of errors')
-install='domjudge.install'
-
-source=(http://www.domjudge.org/releases/domjudge-$pkgver.tar.gz
- domjudge-judgehostd.service jsoncpp.patch)
-md5sums=('a200a53f86596a8e89c76bbc014c1e66'
- '93cd5b10fc2636b664f2c17b4f34436f'
- '69e8aef0a5f9394fd0a4f42785d0732e')
+makedepends=('boost' 'composer' 'inetutils' 'libcgroup' 'git' 'jsoncpp')
+optdepends=(
+ 'mysql: to run database on current host'
+ 'phpmyadmin: to access database in an emergency'
+ 'ntp: to keep judgehosts clocks in sync'
+ 'beep: for notification of errors')
+source=(
+ "https://www.domjudge.org/releases/domjudge-$pkgver.tar.gz"
+ domjudge-domserver.conf
+ domjudge-judgehost.conf
+ domjudge-judgehostd.service
+ domjudge-judgehostd@.service
+ domjudge-cgroup.service)
+sha256sums=('d794b313c622f16aca3e7bc2779b7b474ef271efff99546a5c309973e85c6dcf'
+ 'c0dfd31c0d19856df324057ffb4f81d50fe765c48026d419ceaea71864663532'
+ '06faeeea3e3abda5a53a9ae150c6289cd49062c9a22129436640d11a9948eed5'
+ '9ed301acc46bcc4de0ac38fc7fa9abe13912deb64ff549dd68ada54b9158f680'
+ '2b88ea6555d1887f4e27a863be151326955a2687c6388e81512517a56d009334'
+ 'd0a921ca8f81b3550acc8fa27713624ca39540090c943293242dcc9cd85b8049')
build() {
- cd "$srcdir"/domjudge-$pkgver
- patch -p0 < ../jsoncpp.patch
- ./configure --enable-fhs --enable-cgroups --prefix=/usr \
- --sysconfdir=/etc --localstatedir=/var \
- --enable-submitclient=http,dolstra \
- --with-domjudge-user=root --with-webserver-group=http
- make all
+ cd "$srcdir/domjudge-$pkgver"
+ domserver_lib="/usr/lib/domserver"
+ judgehost_lib="/usr/lib/judgehost"
+ domserver_var="/var/lib/domserver"
+ judgehost_var="/var/lib/judgehost"
+ ./configure --enable-fhs --prefix=/usr\
+ --bindir=/usr/bin\
+ --sbindir=/usr/bin\
+ --libexecdir=/usr/libexec\
+ --sysconfdir=/etc\
+ --sharedstatedir=/var\
+ --localstatedir=/var\
+ --libdir=/usr/lib\
+ --includedir=/usr/include\
+ --datarootdir=/var/lib\
+ --with-domserver_etcdir=/etc/domserver\
+ --with-domserver_webappdir=$domserver_var/webapp\
+ --with-domserver_sqldir=$domserver_var/sql\
+ --with-domserver_libdir=$domserver_lib\
+ --with-domserver_libvendordir=$domserver_lib/vendor\
+ --with-domserver_libsubmitdir=$domserver_lib/submit\
+ --with-domserver_rundir=$domserver_var/run\
+ --with-domserver_logdir=/var/log/domserver\
+ --with-domserver_submitdir=$domserver_var/submissions\
+ --with-judgehost_etcdir=/etc/judgehost\
+ --with-judgehost_libdir=$judgehost_lib\
+ --with-judgehost_libvendordir=$judgehost_lib/vendor\
+ --with-judgehost_libjudgedir=$judgehost_lib/judge\
+ --with-judgehost_logdir=/var/log/judgehost\
+ --with-judgehost_rundir=$judgehost_var/run\
+ --with-judgehost_judgedir=$judgehost_var/judgings\
+ --with-domjudge-user=512 --with-webserver-group=http\
+ --with-runuser=domjudge-run --with-rungroup=domjudge-run
+ make all
+}
+
+package_domjudge-submit() {
+ arch=("$CARCH")
+ depends=('curl' 'jsoncpp' 'file')
+ install -Dm 755 "$srcdir/domjudge-$pkgver/submit/submit" "$pkgdir/usr/bin/submit"
}
-package() {
- cd "$srcdir"/domjudge-$pkgver
- make install-{domserver,judgehost,docs} DESTDIR="$pkgdir"/
- rm -rf "$pkgdir"/tmp
- install -D -m 440 "$pkgdir"/etc/domjudge/sudoers-domjudge "$pkgdir"/etc/sudoers.d/domjudge
- sed -s "s/^root/domjudge/g" -i "$pkgdir"/etc/sudoers.d/domjudge
- rm "$pkgdir"/etc/domjudge/{restapi.secret,sudoers-domjudge,dbpasswords.secret}
- install -D "$srcdir"/domjudge-judgehostd.service "$pkgdir"/etc/systemd/system/domjudge-judgehostd.service
+package_domjudge-domserver() {
+ arch=('any')
+ depends=('curl' 'php' 'php-gd' 'php-intl' 'unzip' 'zip' 'apache')
+ install=domjudge-domserver.install
+ cd "$srcdir/domjudge-$pkgver"
+ make install-domserver DESTDIR="$pkgdir"/
+ install -Dm 644 "$srcdir/domjudge-domserver.conf" "$pkgdir/usr/lib/sysusers.d/domjudge-domserver.conf"
}
+package_domjudge-docs() {
+ arch=('any')
+ depends=('php')
+ cd "$srcdir/domjudge-$pkgver"
+ make install-docs DESTDIR="$pkgdir"/
+}
+
+package_domjudge-judgehost() {
+ arch=("$CARCH")
+ depends=('libcgroup' 'curl' 'php' 'unzip' 'zip' 'lsof')
+ cd "$srcdir/domjudge-$pkgver"
+ make install-judgehost DESTDIR="$pkgdir"/
+ install -Dm 644 "$srcdir/domjudge-judgehostd.service" "$pkgdir/usr/lib/systemd/system/domjudge-judgehostd.service"
+ install -Dm 644 "$srcdir/domjudge-judgehostd@.service" "$pkgdir/usr/lib/systemd/system/domjudge-judgehostd@.service"
+ install -Dm 644 "$srcdir/domjudge-cgroup.service" "$pkgdir/usr/lib/systemd/system/domjudge-cgroup.service"
+ install -Dm 644 "$srcdir/domjudge-judgehost.conf" "$pkgdir/usr/lib/sysusers.d/domjudge-judgehost.conf"
+ sed -i 's/512/domjudge/g' "$pkgdir/etc/judgehost/sudoers-domjudge"
+ mkdir -p "$pkgdir/etc/sudoers.d"
+ ln -s "/etc/judgehost/sudoers-domjudge" "$pkgdir/etc/sudoers.d/domjudge"
+}
diff --git a/domjudge-cgroup.service b/domjudge-cgroup.service
new file mode 100644
index 000000000000..f8780a007a2c
--- /dev/null
+++ b/domjudge-cgroup.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Cgroup setup script for domjudge
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/create_cgroups
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/domjudge-domserver.conf b/domjudge-domserver.conf
new file mode 100644
index 000000000000..f3f8bc35d4e1
--- /dev/null
+++ b/domjudge-domserver.conf
@@ -0,0 +1,2 @@
+u domjudge 512 "DOMJudge Daemon User" /opt/domjudge /bin/nologin
+g domjudge 512
diff --git a/domjudge-domserver.install b/domjudge-domserver.install
new file mode 100644
index 000000000000..d923ae5107ac
--- /dev/null
+++ b/domjudge-domserver.install
@@ -0,0 +1,11 @@
+clear_cache(){
+ rm -rf /var/lib/domjudge/webapp/var/cache/*
+}
+
+pre_remove(){
+ clear_cache
+}
+
+pre_update(){
+ clear_cache
+}
diff --git a/domjudge-judgehost.conf b/domjudge-judgehost.conf
new file mode 100644
index 000000000000..f7c1b1802eaa
--- /dev/null
+++ b/domjudge-judgehost.conf
@@ -0,0 +1,4 @@
+u domjudge 512 "DOMJudge Daemon User" /opt/domjudge /bin/nologin
+g domjudge 512
+u domjudge-run 513 "DOMJudge Runner User" /opt/domjudge /bin/nologin
+g domjudge-run 513
diff --git a/domjudge-judgehostd.service b/domjudge-judgehostd.service
index db08f6cfbe66..ae672127c1fe 100644
--- a/domjudge-judgehostd.service
+++ b/domjudge-judgehostd.service
@@ -1,6 +1,7 @@
[Unit]
Description=Domjudge judgehost daemon
-After=network.target
+After=network.target domjudge-cgroup.service
+Requires= domjudge-cgroup.service
[Service]
ExecStart=/usr/bin/judgedaemon
diff --git a/domjudge-judgehostd@.service b/domjudge-judgehostd@.service
new file mode 100644
index 000000000000..cdbb39f044e5
--- /dev/null
+++ b/domjudge-judgehostd@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Domjudge judgehost daemon at cpu %i
+After=network.target domjudge-cgroup.service
+Requires= domjudge-cgroup.service
+
+[Service]
+ExecStart=/usr/bin/judgedaemon -n %i
+Restart=on-failure
+User=domjudge
+KillSignal=SIGINT
+SendSIGKILL=no
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/domjudge.install b/domjudge.install
deleted file mode 100644
index 34bc31407e2d..000000000000
--- a/domjudge.install
+++ /dev/null
@@ -1,58 +0,0 @@
-post_install() {
- if ! getent group domjudge >/dev/null; then
- groupadd --system domjudge
- fi
- if ! getent passwd domjudge >/dev/null; then
- useradd --system -c 'judgehost daemon user' -g domjudge -s /bin/false domjudge
- fi
- if ! getent passwd domjudge-run >/dev/null; then
- useradd -d /fail -c 'judgehost run user' -g nobody -s /bin/false domjudge-run
- fi
-
- if [ ! -f /etc/domjudge/dbpasswords.secret ];
- then
- /etc/domjudge/gendbpasswords > /etc/domjudge/dbpasswords.secret
- fi
- if [ ! -f /etc/domjudge/restapi.secret ];
- then
- /etc/domjudge/genrestapicredentials > /etc/domjudge/restapi.secret
- fi
-
- chown domjudge /var/lib/domjudge/judgings
- chmod 0711 /var/lib/domjudge/judgings
-
- chown domjudge /var/{log,run}/domjudge
- chmod 0700 /var/{log,run}/domjudge
-
- chown domjudge:http /var/lib/domjudge/submissions
- chmod 0770 /var/lib/domjudge/submissions
-
- chown domjudge:http /etc/domjudge/{dbpasswords.secret,restapi.secret}
- chmod 0640 /etc/domjudge/{dbpasswords.secret,restapi.secret}
-
- chown domjudge /etc/domjudge/{domserver-config.php,judgehost-config.php,common-config.php}
-
- echo "To finish installation procedure, run:"
- echo " dj-setup-database -u root -r install"
- echo "and add"
- echo " :/etc/domjudge:/usr/lib/domjudge:/usr/share/domjudge:/var/lib/domjudge"
- echo "into open_basedir in /etc/php/php.ini"
-}
-
-post_upgrade() {
- echo "To finish update procedure, run:"
- echo " dj-setup-database -u root -r upgrade"
-}
-
-post_remove() {
- if getent passwd domjudge-run >/dev/null; then
- userdel domjudge-run
- fi
- if getent passwd domjudge >/dev/null; then
- userdel domjudge
- fi
- if getent group domjudge >/dev/null; then
- groupdel domjudge
- fi
-}
-
diff --git a/jsoncpp.patch b/jsoncpp.patch
deleted file mode 100644
index 2cdd754c1b42..000000000000
--- a/jsoncpp.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- configure.orig 2015-08-12 20:07:13.946754173 +0200
-+++ configure 2015-08-12 20:07:28.439986151 +0200
-@@ -6442,9 +6442,9 @@
-
-
-
--for ac_header in jsoncpp/json/json.h
-+for ac_header in json/json.h
- do :
-- ac_fn_cxx_check_header_mongrel "$LINENO" "jsoncpp/json/json.h" "ac_cv_header_jsoncpp_json_json_h" "$ac_includes_default"
-+ ac_fn_cxx_check_header_mongrel "$LINENO" "json/json.h" "ac_cv_header_jsoncpp_json_json_h" "$ac_includes_default"
- if test "x$ac_cv_header_jsoncpp_json_json_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
- #define HAVE_JSONCPP_JSON_JSON_H 1
---- submit/submit.cc.orig 2015-08-12 20:28:45.377704085 +0200
-+++ submit/submit.cc 2015-08-12 20:28:56.307629469 +0200
-@@ -27,7 +27,7 @@
- #include <termios.h>
- #include <curl/curl.h>
- #include <curl/easy.h>
--#include <jsoncpp/json/json.h>
-+#include <json/json.h>
- #ifdef HAVE_MAGIC_H
- #include <magic.h>
- #endif