News

Release of VPL Jail System 4.0.2

VPL Jail System 4.0.2

Download VPL Jail System 4.0.2

Release notes

This document outlines the key changes introduced in VPL Jail System since the version 3.0.1. The highlight of this changes is the introduction of Docker support, among other significant improvements and fixes.

Docker Support

  • Auto-detection of containerized environments.
  • Capability to run the jail server inside a container, both in privileged and non-privileged modes.
  • Includes three Dockerfiles for various configurations:
    • Dockerfile.no_https: HTTP without HTTPS support.
    • Dockerfile: HTTP and HTTPS support.
    • Dockerfile.letsencrypt: HTTP and HTTPS with Let's Encrypt certificates.
  • Three Compose files (compose.no_https.yaml, compose.yaml, compose.letsencrypt.yaml) corresponding to the Dockerfiles.

Server Enhancements

  • Fixed JSON encoding of control codes < 32.
  • Added ability to start the server in foreground mode, suitable for containerized environments.
  • Standardized JSONRPC to use 3 parameters, while maintaining backward compatibility for 2 parameters.
  • Introduced support for challenge mode for Let's Encrypt certificate management. Available using new CERTBOT_WEBROOT_PATH configuration parameter to support certbot.
  • Allow running waiting for certificates.
  • Environment Variable Support. Configuration parameters from the environment variables now take precedence over the config file. Environment variables should be prefixed with VPL_JAIL_, followed by the config parameter name.
    • Example: export VPL_JAIL_PORT=8000 to set the PORT parameter.

Installer Updates

  • Introduced new command-line options for the installer:
    • help: Display help information.

    • update: Update the VPL-Jail-System server software.

    • start: Start the VPL-Jail-System service post-installation.

    • noninteractive: Enable installation without user interaction.

    • [inst_level]: Set installation level (minimum, basic, standard, full).

    • list: Show packages to be installed per [inst_level].

    • Examples of installer launch

      • ./install-vpl.sh update: Update server software.
      • ./install-vpl.sh standard noninteractive start: Non-interactive installation of standard packages and start the server.
      • ./install-vpl.sh full: Interactive installation of all development packages.
  • Added Rust programming language support.
  • Added .NET packages, enabling support for C#, F#, and Visual Basic .NET. C# on Mono remains available.
  • Expanded package manager support to APT, DNF, and APK, increasing the compatibility with various Linux distributions. YUM support has been discontinued.
  • Package Customization. Extracted the list of packages to install to separate files, allowing for better customization. These files are located in the package_files directory.

Running Tasks enhancement

  • VNC Launching Enhancements:

    • Fixes and improvements in VNC launch process.
    • Confirmed functionality on Fedora, Ubuntu, Debian, and Alpine distributions.
  • Terminal and Task Execution Changes:

    • Modified running tasks terminal behavior to use only newline as the end-of-line character.
    • Removed local echo in evaluations.

Other Improvements and fixes

  • Improved testing by performing syntax checks for bash scripts.
  • This update fixes a typo in the name of CERTBOT
  • The installer has been enhanced to support command line options in any order.

Release of VPL Jail System 3.0.1

VPL Jail System 3.0.1

Download VPL Jail System 3.0.1

More details in the 3.0.1 manual version

Release notes

This release brings with it a number of fixes and enhancements.

  • Added support for supplementary planes of UTF-8 in JSON: This update extends the scope of our system’s compatibility by including all corresponding Unicode characters in UTF-8’s supplementary planes for JSON formatting.
  • The installer switches the preferred VHDL Compiler: The installer now employs GHDL as the default VHDL compiler, replacing FreeHDL due to its unavailability in the new Ubuntu releases. Note that GHDL is used from version 4.1.1 of VPL.
  • VNC Server launch improvements: We’ve fixed the vncconfig detection when launching the VNC server.
  • SELinux Status Check: The service launcher now performs a check of the usage and current state of SELinux. It will display a message if SELinux is installed and not in a disabled state. Note that the VPL Jail server is not compatible with SELinux.

Release of VPL Jail System 2.7.2

VPL Jail System 2.7.2

Download VPL Jail System 2.7.2

More details in the version 2.7.2 manual

 

Release notes

This is a bug-fix release of version 2.7.1 with small improvements.

  • This release includes a workaround to a problem with the limits of int in the XMLRPC protocol (the protocol uses int32). This problem avoids setting a memory size or file size larger than the maximum int32 value. A full solution to this problem requires modifications in the Moodle plugin side. This temporal workaround switches the size limit to the jail server local size limit when the problem is found.
  • Uses long long int to represent memory a file size.
  • The installer includes the tool bc and new modules when installing python3: mypy, pycodestyle, and pydocstyle.
  • The system checks for a change in the SSL certificate, reloading it if changed. This allows updating certificates without stopping the service.

Release of VPL Jail System 3.0.0

VPL Jail System 3.0.0

Download VPL Jail System 3.0.0

More details in the 3.0.0 manual version

 

Release notes

This release includes new features and improvements.

  • Adds a new run mode for web apps. This mode allows accessing web apps from the client browser directly instead of interacting with a browser running on the server. This will drastically reduce the server resources used by this type of app.
  • Adds support for JSON-RPC. The server detects if the request is XML-RPC or JSON-RPC and responds appropriately. This feature allows using the server with older clients (Moodle VPL plugin version < 4.0.0) and new clients that run on PHP 8 or higher without XML-RPC support. Using JSON-RPC also removes the limits of XML-RPC ints.
  • Adds a new RPC call named “update”. This RPC call allows updating files in the execution environment from the client without stopping the executing task. This call is useful for interpreted languages such as PHP in a web app.
  • Adds a new RPC call named “directrun”. This RPC call will allow new future features.
  • The WebSocket protocol is improved to accept larges packets and fragmented packets.
  • Adds SSL_CIPHER_SUITES configuration parameter. This parameter is used to set ciphers for TLSv1.3 if available.
  • Adds HSTS_MAX_AGE configuration parameter. This parameter allows HTTP Strict-Transport-Security by setting the max-age parameter of the Strict-Transport-Security header. This parameter requires the use of PORT = 0.
  • The installer adds Julia programming language to the list of development software installable.

Release of VPL Jail System 2.7.1

VPL Jail System 2.7.1

Build Status

Download VPL Jail System 2.7.1

More details in the version 2.7.1 manual

Release note

This is a bug-fix release of version 2.7.0. This release fixes a problem that affects systems with old versions of g++ that are not compatible with std::regex class. This problem is known to affect CentOS 7.