diff --git a/.travis.yml b/.travis.yml index 409ab26b..8fea2548 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,16 @@ sudo: required -dist: xenial +dist: focal language: cpp before_install: # Install bats testing suite - - sudo add-apt-repository ppa:duggan/bats --yes - - sudo apt-get update -qq - - sudo apt-get install -qq bats + - sudo apt-get install -y bats # Install ZeroMQ - sudo apt-get install -y libzmq3-dev libzmq5 # Install Boost - sudo apt-get install -y libboost-all-dev # Install yaml-cpp - - sudo apt-get install -y libyaml-cpp0.5v5 libyaml-cpp-dev + - sudo apt-get install -y libyaml-cpp-dev # Install libcURL - sudo apt-get install -y libcurl4-gnutls-dev # Install libarchive (to avoid compiling it) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b388732..d02b5bbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -301,8 +301,6 @@ if(UNIX) set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64") set(CPACK_RPM_PACKAGE_RELEASE "1") set(CPACK_RPM_PACKAGE_DESCRIPTION "Backend part of ReCodEx programmer testing solution.") - #set(CPACK_RPM_PACKAGE_REQUIRES "boost-filesystem >= 1.53.0, boost-program-options >= 1.53.0, yaml-cpp >= 0.5.1, zeromq >= 4.0.5, libstdc++ >= 4.8.5, libcurl >= 7.29.0, libarchive >= 3.1.2") - #set(CPACK_RPM_PACKAGE_AUTOREQ " no") set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/install/postinst") set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Petr Stefan ") set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") diff --git a/README.md b/README.md index d4dd71ef..2e2e12f0 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,7 @@ Worker specific requirements are written in this section. It covers only basic requirements, additional runtimes or tools may be needed depending on type of use. The package names are for CentOS if not specified otherwise. +- Boost 1.66 development libs (`boost-devel` package) - ZeroMQ in version at least 4.0, packages `zeromq` and `zeromq-devel` (`libzmq3-dev` on Debian) - YAML-CPP library, `yaml-cpp` and `yaml-cpp-devel` (`libyaml-cpp0.5v5` and diff --git a/judges/recodex_token_judge/comparator.hpp b/judges/recodex_token_judge/comparator.hpp index 9522dfb4..19cda01d 100644 --- a/judges/recodex_token_judge/comparator.hpp +++ b/judges/recodex_token_judge/comparator.hpp @@ -274,8 +274,10 @@ template static void mapRemoveEmpty(std::map &m) { - for (auto it = m.begin(); it != m.end(); ++it) { - if (it->second == 0) { m.erase(it); } + std::map old; + old.swap(m); + for (auto it = old.begin(); it != old.end(); ++it) { + if (it->second != 0) { m[it->first] = it->second; } } } diff --git a/recodex-worker.spec b/recodex-worker.spec index 0a48741b..d1a5efee 100644 --- a/recodex-worker.spec +++ b/recodex-worker.spec @@ -1,8 +1,8 @@ %define name recodex-worker %define short_name worker %define version 1.6.4 -%define unmangled_version 0c3af00f74b5f088e68a7f1b79e130bef0105646 -%define release 1 +%define unmangled_version 597144f5dc757fc18446f3fc4a58f064f3ac4ba6 +%define release 4 %define spdlog_name spdlog %define spdlog_version 0.13.0 @@ -17,7 +17,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Prefix: %{_prefix} Vendor: Petr Stefan Url: https://github.com/ReCodEx/worker -BuildRequires: systemd gcc-c++ cmake zeromq-devel cppzmq-devel yaml-cpp-devel libcurl-devel libarchive-devel +BuildRequires: systemd gcc-c++ cmake zeromq-devel cppzmq-devel yaml-cpp-devel libcurl-devel libarchive-devel boost-devel Requires: systemd isolate #Source0: %{name}-%{unmangled_version}.tar.gz @@ -27,7 +27,7 @@ Source1: https://github.com/gabime/%{spdlog_name}/archive/v%{spdlog_version}.tar %global debug_package %{nil} %description -Backend part of ReCodEx programmer testing solution. +Worker is a backend component of ReCodEx code examiner, an educational application for evaluating programming assignments. %prep %setup -n %{short_name}-%{unmangled_version}