Skip to content

Commit 2b4e83b

Browse files
committed
Update documentation about installation.
1 parent 2e0280f commit 2b4e83b

1 file changed

Lines changed: 19 additions & 7 deletions

File tree

docs/Installation.rst

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ These are our requirements (in particular we highlight those that are not usuall
1414

1515
.. We need 9.0 because of pg_largeobject_metadata (in drop_db).
1616
17+
* `GNU compiler collection <https://gcc.gnu.org/>`_ (in particular the C compiler ``gcc``);
18+
1719
* `gettext <http://www.gnu.org/software/gettext/>`_ >= 0.18;
1820

1921
* `Python <http://www.python.org/>`_ >= 2.7, < 3.0;
@@ -50,9 +52,7 @@ These are our requirements (in particular we highlight those that are not usuall
5052

5153
* `shared-mime-info <http://freedesktop.org/wiki/Software/shared-mime-info>`_;
5254

53-
* `PHP <http://www.php.net>`_ >= 5 (only if you plan to run a contest allowing PHP);
54-
55-
* `PyYAML <http://pyyaml.org/wiki/PyYAML>`_ >= 3.10 (only for Importer);
55+
* `PyYAML <http://pyyaml.org/wiki/PyYAML>`_ >= 3.10 (only for some importers);
5656

5757
* `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup/>`_ >= 3.2 (only for running tests);
5858

@@ -64,7 +64,17 @@ These are our requirements (in particular we highlight those that are not usuall
6464

6565
* `Sphinx <http://sphinx-doc.org/>`_ (only for building documentation).
6666

67-
You will also require a Linux kernel with support for control groups and namespaces. Support has been in the Linux kernel since 2.6.32, and is provided by Ubuntu 12.04 and later. Other distributions, or systems with custom kernels, may not have support enabled. At a minimum, you will need to enable the following Linux kernel options: ``CONFIG_CGROUPS``, ``CONFIG_CGROUP_CPUACCT``, ``CONFIG_MEMCG`` (previously called as ``CONFIG_CGROUP_MEM_RES_CTLR``), ``CONFIG_CPUSETS``, ``CONFIG_PID_NS``, ``CONFIG_IPC_NS``, ``CONFIG_NET_NS``.
67+
You will also require a Linux kernel with support for control groups and namespaces. Support has been in the Linux kernel since 2.6.32, and is provided by Ubuntu 12.04 and later. Other distributions, or systems with custom kernels, may not have support enabled. At a minimum, you will need to enable the following Linux kernel options: ``CONFIG_CGROUPS``, ``CONFIG_CGROUP_CPUACCT``, ``CONFIG_MEMCG`` (previously called as ``CONFIG_CGROUP_MEM_RES_CTLR``), ``CONFIG_CPUSETS``, ``CONFIG_PID_NS``, ``CONFIG_IPC_NS``, ``CONFIG_NET_NS``. It is anyway suggested to use Linux kernel version at least 3.8.
68+
69+
Then you require the compilation and execution environments for the languages you will use in your contest:
70+
71+
* `GNU compiler collection <https://gcc.gnu.org/>`_ (for C, C++ and Java, respectively with executables ``gcc``, ``g++`` and ``gcj``);
72+
73+
* `Free Pascal <http://www.freepascal.org/>`_ (for Pascal, with executable ``fpc``);
74+
75+
* `Python <http://www.python.org/>`_ >= 2.7, < 3.0 (for Python, with executable ``python2``; note though that this must be installed anyway because it is required by CMS itself);
76+
77+
* `PHP <http://www.php.net>`_ >= 5 (for PHP, with executable ``php5``).
6878

6979
All dependencies can be installed automatically on most Linux distributions.
7080

@@ -83,7 +93,7 @@ On Ubuntu 14.04, one will need to run the following script to satisfy all depend
8393
# sudo apt-get install nginx-full php5-cli php5-fpm phppgadmin \
8494
# python-yaml python-sphinx
8595

86-
On Arch Linux, the following command will install almost all dependencies (three of them can be found in the AUR):
96+
On Arch Linux, the following command will install almost all dependencies (two of them can be found in the AUR):
8797

8898
.. sourcecode:: bash
8999

@@ -92,12 +102,11 @@ On Arch Linux, the following command will install almost all dependencies (three
92102
python2-psutil python2-netifaces python2-crypto python2-pytz \
93103
python2-six iso-codes shared-mime-info python2-beautifulsoup3 \
94104
python2-mechanize python2-mock python2-requests python2-werkzeug \
95-
python2-gevent
105+
python2-gevent python2-coverage
96106

97107
# Install the following from AUR.
98108
# https://aur.archlinux.org/packages/libcgroup/
99109
# https://aur.archlinux.org/packages/sgi-stl-doc/
100-
# https://aur.archlinux.org/packages/python2-coverage/
101110

102111
# Optional.
103112
# sudo pacman -S nginx php php-fpm phppgadmin python2-yaml python-sphinx
@@ -131,6 +140,9 @@ You can verify to be in the group by issuing the command:
131140

132141
groups
133142

143+
.. warning::
144+
145+
Users in the group ``cmsuser`` will be able to launch the ``isolate`` program with root permission. They may exploit this to gain root privileges. It is then imperative that no untrusted user is allowed in the group ``cmsuser``.
134146

135147
.. _installation_updatingcms:
136148

0 commit comments

Comments
 (0)