Difference between revisions of "Изменения в версии 2.3.29"
Line 14: | Line 14: | ||
На 64-битных платформах автоматически настраивается компиляция и 64-битных, и 32-битных версий библиотек. | На 64-битных платформах автоматически настраивается компиляция и 64-битных, и 32-битных версий библиотек. | ||
+ | |||
+ | === ejudge-setup === | ||
+ | |||
+ | Если при конфигурировании ejudge была настроена поддержка MySQL, настроечный скрипт (ejudge-install.sh) по умолчанию включает поддержку MySQL. База данных называется ejudge, пользователь ejudge и пароль ejudge. Настройки можно поменять в конфигурационных файлах (ejudge.xml и mysql_passwd). | ||
+ | |||
+ | В текстовый пользовательский интерфейс добавлено меню настройки параметров доступа к базе MySQL. | ||
=== [[ejudge.xml]] === | === [[ejudge.xml]] === |
Revision as of 05:12, 14 December 2013
Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в версии 2.3.29
Время выхода: ?? ?? 2013 г.
Изменена поддержка сессий клиентов. В предыдущих версиях идентификатор сессии предствлял собой 64-битное число, передаваемое в параметре SID всех запросов к веб-серверу ejudge. Для повышения защищенности сессий в данной версии ejudge добавлена вторая часть идентификатора сессии — 64-битное число, передаваемое и хранимое как куки-параметр EJSID. Таким образом, только значения SID, передаваемого URL запросов к серверу, недостаточно для авторизации.
Данное изменение ломает обратную совместимость со сторонними компонентами, использующими HTTP-запросы к ejudge. Такие компоненты должны быть обновлены, чтобы сохранять и передавать обратно куки-параметр EJSID.
Сказанное выше не относится к пользовательским браузерам.
configure
Изменены пути по умолчанию для 64-битной платформы. Теперь 64-битные библиотеки помещаются в каталог lib64 (например, /opt/ejudge/lib64), а 32-битные библиотеки — в каталог lib (/opt/ejudge/lib). Для модификации пути по умолчанию к 64-битным библиотекам можно использовать опцию --libdir, а для 32-битных библиотек — --with-lib32dir.
На 64-битных платформах автоматически настраивается компиляция и 64-битных, и 32-битных версий библиотек.
ejudge-setup
Если при конфигурировании ejudge была настроена поддержка MySQL, настроечный скрипт (ejudge-install.sh) по умолчанию включает поддержку MySQL. База данных называется ejudge, пользователь ejudge и пароль ejudge. Настройки можно поменять в конфигурационных файлах (ejudge.xml и mysql_passwd).
В текстовый пользовательский интерфейс добавлено меню настройки параметров доступа к базе MySQL.
ejudge.xml
В связи с изменениями в поддержке сессий, они по умолчанию не привязываются к IP-адресу, то есть действие сессии сохраняется, если у клиента изменился IP-адрес, что часто бывает, например, в мобильных сетях. Поэтому значение атрибута disable_cookie_ip_check элемента config игнорируется.
Если необходимо включить привязку сессий к IP-адресам необходимо установить в значение "yes" атрибут enable_cookie_ip_check элемента config.
Добавлен атрибут disable_new_users элемента config. Если атрибут установлен в значение "yes", запрещается самостоятельная регистрация новых пользователей. Существующие пользователи могут регистрироваться на новые турниры, восстанавливать пароли и т. п. Администратор может создавать новых пользователей.
ej-contests
В выражения фильтра посылок добавлена поддержка полей passed_mode, eoln_type, store_flags.
Реализована поддержка нового формата хранения файлов с посылками пользователей. Стандартный (старый) формат хранения: в каталоге var/archive располагаются каталоги runs, xmlreports, reports, audit, в которых располагается иерархия подкаталогов, в которых располагаются файлы. Имя файла — это номер посылки. Файлы могут сжиматься с помощью gzip (тогда файл имеет суффикс .gz), либо быть ZIP-архивом (тогда файл имеет суффикс .zip). Например, исходный код посылки 003567 располагается в файле var/archive/runs/0/3/F/003567.gz.
В новом формате хранения используется уникальный идентификатор каждой посылки (UUID). Все файлы, относящиеся к одной посылке, хранятся в одном каталоге. Например, файлы, относящиеся к посылке с UUID 045f9a67-65a5-4a8b-954d-912e93fbc73f хранятся в каталоге var/archive/uuid/04/5f/045f9a67-65a5-4a8b-954d-912e93fbc73f. Файл с исходным кодом называется source[.gz], файл с протоколом проверки — report[.gz], файл аудита — audit. Файлы могут сжиматься с помощью gzip (тогда имя имеет суффикс .gz). Новый формат хранения файлов посылок имеет несколько преимуществ:
- отсутствует ограничение на один миллион посылок;
- UUID посылки не изменяется при смене номера посылки, поэтому не требуется переименование файлов при добавлении новой посылки в середину;
- UUID посылки является глобально уникальным, то есть вероятность появления другой посылки UUID которой был сгенерирован независимо, является пренебрежимо малой, что облегчает слияние нескольких турниров в один;
- все файлы, относящиеся к одной посылке хранятся в одном месте.
Недостатком нового формата хранения является усложнение доступа к файлам посылки по ее номеру.
По умолчанию новый формат хранения посылок отключен. Новый формат хранения нормально сосуществует со старым форматом хранения. А именно, в базу данных в таблицу посылок добавлено новое поле store_flags. Если значение поля равно 0 (значение по умолчанию), то файлы посылки хранятся в старом формате, если значение поля равно 1, то файлы посылки хранятся в новом формате. Новый формат хранения посылок включается с помощью глобальной конфигурационной переменной uuid_archive_dir конфигурационного файла турнира.
Добавлена новая глобальная конфигурационная переменная uuid_archive_dir, включающая новый формат хранения файлов в данном турнире. По умолчанию ее значение (пока) устанавливается равным 0.
Добавлена новая глобальная конфигурационная переменная enable_32bit_checkers. Если эта конфигурационная переменная установлена, то на 64-битной платформе проверяющие программы будут компилироваться 32-битными компиляторами (например, будет использоваться опция -m32 g++).