* Fix judger/log/
* fix(judger): Let judger work on ubuntu 20.04
Judger stops working since 9a6f16cf1d, this commit allows judger continue working.
* fix(web): update faq.php
Since the phpv8-v8js plugin did not fully support PHP 7.4 and there is no new package on pecl...
Every time we need to make some 魔改 on this because official provided versions are always too old...
For only web, there is no need to build checkers.
There are so many checkers that will slow down make speed.
Also for some situations, users can build checkers without runners.
Without bundle, now you can choose to download single container.
For example, you can only download judger container to setup a new judger.
Also, the web container now no db and judger containing, except local sandbox.
You can use docker-compose to get every single container work together from now.
Single DB this time uses the latest MySQL 8 version, so some preferences are different.
The utf8 set in MySQL is not real UTF-8.
Use utf8mb4 character set instead of utf8.
妈妈再也不用担心写东西用不了 Emoji 了~
BREAKING CHANGE: Old databases and tables need to be upgraded.
Better not use old database structure with new connect parameters.
The web interface is merged but the table is not.
Merge it into a single SQL file, without execute PHP.
Redumped database structure with mysqldump command.
When judger is polling, there will be many items under access log file.
It makes access log file very big and makes us difficult to check the log.
Move judge access log to another single file, make it easier to manage log files.
Upgrade judge_client from Python 2 to Python 3.
Add back and support a new judger update method.
Remove the Makefile outside of the folder which not contain any C file.
Users rarely use hack, but it is enabled by default.
They need to disable it manually, and there are also many people do not now why should disable it.
Make the hack function disabled when creating a new problem.
* feat(install, svn): remove svn
Remove everything related to svn.
Rename uoj-svn-lib to uoj-data-lib.
Save preparing problem data to /var/uoj_data/prepare/problem_id.
* Typo: uoj_date -> uoj_data
* add: backward compatibility
BREAKING CHANGE: Preparing problem data location is changed
You need to move files from /var/svn/problem/{id}/cur/{id}/1 to
/var/uoj_data/upload/{id}
Previous the branch in Dockerfile is specified manually in each branch.
But when someone want to change the branch or test they must modify it.
To make the process more intelligent, we will auto get the branch name.
And, to make the image smaller, we added --single-branch argument onto.
In the past, we make the bundle installation as two parts.
Some of the steps such as compile judger is done at local.
And, to make it work, the steps may in a wrong order.
Now we make most of the steps working online automaticly,
and if you start the container you don't need to wait for
a long time to let it prepare. It will only reset passwords.
There are also some works moved to another place in order
to make the installation flow clearer and simpler.
Using more threads to boost judge_client's make.
Deleted some old things and doing something new.
TODAY: **Merry Christmas!**
We wrote the script that can only be executed on bash.
But Ubuntu sets dash as its default shell environment.
One of the most difference is the POSIX standard echo,
another is parameter of chown can't be put to the end.
So we made some changes to let the script used widely.
And you will not face the syntax error when open this.
We've just change php7 branch as the master branch, and php5 version turned into legacy.
To make docker automated build work correctly, the branch name specify now changed.
This is an old enough bug while using MySQL version 5.5 with Ubuntu 14.04.
According to these issues form docker or moby repository:
https://github.com/docker/for-linux/issues/72https://github.com/moby/moby/issues/35503
overlayfs only supports a subset of the POSIX standard.
But the problem does not arise when using aufs.
We do a little trick to MAKE MYSQL GREAT AGAIN.
NOTICE: Only people who are using docker may face this problem.
If you are using a bare-metal system or just running a virtual machine,
executing the installation script without using container works fine.
The compilers are all updated in Ubuntu 18.04 basesystem.
Add some defines for judger on compiling and replace web's display version to the real version.
To support new compilers we must modify the syscall list to let them run properly, otherwise they will error with "Dangerous Syscalls".
The Oracle JDK8 will read usagetracker profiles and record usage infomation, so disable it in order to not making junk files which may cause DGS.
Due to historic reasons, the version and path of compilers are specified.
This will remove these specifications to make judger more adaptable.
Also provide defines to specify new version and keep for default.
Update base system to Ubuntu 18.04.
.htaccess file's session path changed correctly.
Add gnupg install choice, due to base system has no gpg support.
Set DEBIAN_FRONTEND to noninteractive in order to prevent tzdata stuck.
Change Dockerfile's verion and buanch checkout method, in order to save space.
Fix mysql conf when not restart service and the database can't import judger info.
Change install.sh, support PHP7.2, update libv8 repo to artful, with missing php-mbstring.
The old JDK distfile mirrors are deprecated, changed to official.sed modded to get the latest jdk8.
BREAKING CHANGE: Ubuntu 14/16 users shouln't execute this script, due to config files and packages not the same.
In order to support PHP7 and Ubuntu 16.04, there must be some changes to make it runs properly.
The install script added php7 and mysql 5.7, newer v8js packages and supports, adjusted some config files.
Also used new way to detect install args, and change tab to 4-char-long space char.
BREAKING CHANGE: This branch can only be used for PHP7, and Ubuntu 14.04 users shouln't execute this script.
The last commit changed the installation script a lot, but made some mistakes on the genration of config.
It gens the $_svn_ourroot_password_ to $_svn_certroot_password_. Just fix it.
According to the version from @vfleaking, the judger_socket password and the our-root password is 32 chars long. Strengthen it.
There is also a *** space char on the end of a line. Kick it out.
Change the base Docker image to ubuntu16.04 and change the LAMP
packages to support PHP7.
BREAKING CHANGE: the packages which will be installed has changed.