Skip to content

Latest commit

 

History

History
139 lines (127 loc) · 10.1 KB

MinimumDependencyVersions.md

File metadata and controls

139 lines (127 loc) · 10.1 KB

Minimum dependency versions

//! [MinDep] We base the minimum versions of dependencies on a roughly 5-year sliding window and a selection of commonly used operating systems. This means that %Wt will be guaranteed to build using: //! [MinDep]

  • Debian oldstable
  • The previous LTS version of Ubuntu
  • The previous release of Red Hat Enterprise Linux (and its derivatives)
  • The previous release of FreeBSD
  • What was the latest version of Visual Studio 5 years ago

//! [MinDep2] Note that this doesn't mean that you can't compile %Wt on older versions of these operating systems. We will just not go out of our way to maintain compatibility with them.

You may be able to compile %Wt on older operating systems if you use a different toolset. For example, Red Hat supplies toolsets that allow you to use a more recent compiler on older RHEL releases. //! [MinDep2]

Example: September 2022

At the time of writing, in September 2022, this means that we'll look at:

//! [UnixVersion]

  • Debian 10
  • Ubuntu 20.04
  • Red Hat Enterprise Linux 8
  • FreeBSD 12 //! [UnixVersion] //! [WindowsVersion]
  • Visual Studio 2017 //! [WindowsVersion]

Wt's current core dependencies

//! [CoreDep]

These dependencies are required to build %Wt. %Wt relies on functionality of these libraries to implement functionality or to actually be able to build. Boost is the only actual library that %Wt depends on. There are a few configuration options when building with Boost that can be configured, and some are required. The options are the following: - BOOST_ROOT/BOOST_PREFIX: either of these options can (or rather, should) be used if Boost is not installed in a default location. It points to the Boost installation path. - Boost_ADDITIONAL_VERSIONS: a list defining the viable Boost versions. You may need to append your version here. This will mainly be the case for custom installations that do not use the expected versioning system. - Boost_USE_STATIC_LIBS: can be defined on Windows, indicating whether Boost ought to be linked statically or dynamically.

More information on including Boost can be found here. //! [CoreDep]

//! [Unix]

Wt's current optional dependencies

//! [OptDep]

The following dependencies are optional. They are used for specific functionality that %Wt offers, and are often hidden behind certain compilation flags. The current list consists of:
Dependency Configuration flag Default value Details
OpenSSL CONNECTOR_HTTP ON Used to support the HTTPS protocol in the web client, and the HTTPS protocol in the built-in wthttpd connector. This will only be used of the wthttpd connector is actually build. This is managed by the build flag CONNECTOR_HTTP, which can be ON or OFF. If OpenSSL is not installed in a default location, its prefix needs to be specified with SSL_PREFIX (as a path).
Haru Free PDF Library ENABLE_HARU ON Used to provide support for painting to PDF (WPdfImage). This can be managed by using the ENABLE_HARU flag (ON/OFF). If Haru is not installed in a default location, its prefix needs to be specified with HARU_PREFIX (as a path). The library can be configured to link statically with HARU_DYNAMIC (where OFF means static link).

%Wt relies on an older verion of HARU, below 2.4.0. Something does not quite compile right with higher versions. We may look at including a more recent version (see: #11704). Additionally, there seems to be a rendering bug with higher versions (2.4.0-2.4.3), where floating point values are not correctly rendered (see: #11833).
GraphicsMagick WT_WRASTERIMAGE_IMPLEMENTATION none Used for supporting painting to raster images (PNG, GIF, ...) (WRasterImage), which are rendered server-side. This configures in what way images can be rendered in %Wt. This is managed by the WT_WRASTERIMAGE_IMPLEMENTATION flag. This flag is a string, and can take the values GraphicsMagick/Direct2D/none. Where GraphicsMagick will require a graphicsmagick installation. If this is not found, it needs to be specified using GM_PREFIX (as a path). Generally speaking GraphicsMagick is a Linux way to handle images, whereas Direct2D is the Windows way.
Pango ENABLED_PANGO ON Used for improved font support in the WPdfImage and WRasterImage paint devices. It can be configured by ENABLED_PANGO (ON/OFF). This will allow for more fonts to be used by %Wt.
PostgreSQL ENABLE_POSTGRES ON Used for the PostgreSQL backend for Wt::Dbo (Dbo::backend::Postgres). This will allow %Wt to use PostgreSQL as its Dbo backend. This can be configured using ENABLE_POSTGRES (ON/OFF). If PostgreSQL is not installed in a default location, its prefix needs to be specified with POSTGRES_PREFIX (as a path).
Firebird ENABLE_FIREBIRD ON Used for the Firebird backend for Wt::Dbo (Dbo::backend::Firebird). This will allow %Wt to use Firebird as its Dbo backend. This can be configured using ENABLE_FIREBIRD (ON/OFF). If Firebird is not installed in a default location, its prefix needs to be specified with FIREBIRD_PREFIX (as a path). By default %Wt includes a IBPP implementation (a library for accessing Firebird databases). If one wished to use a custom IBPP implementation, this will require IBPP_SRC_DIRECTORY, which can be found here, together with USE_SYSTEM_IBPP being set to ON.
the C API for MySQL (mysqlclient)
or the
MariaDB connector library
ENABLE_MYSQL ON Used for the MySQL/MariaDB backend for Wt::Dbo (Dbo::backend::MySQL). This will allow %Wt to use MySQL/MariaDB as its Dbo backend. This can be configured using ENABLE_MYSQL (ON/OFF). If MySQL / MariaDB is not installed in a default location, its prefix needs to be specified with MYSQL_PREFIX (as a path).
unixODBC ENABLE_MSSQLSERVER ON Used for the SQL Server backend for Wt::Dbo (Dbo::backend::MSSQLServer). This will allow %Wt to use MSSQL as its Dbo backend. This can be configured using ENABLE_MSSQLSERVER (ON/OFF). As the name indicates, this is a Windows backend. But it can also be installed on Linux systems (see: Microsoft's documentation for more information).
libunwind ENABLE_UNWIND OFF Used for the saving of backtraces in exceptions (useful for debugging). This can be configured by ENABLE_UNWIND (ON/OFF). If libunwind is not installed in a default location, its prefix needs to be specified with UNWIND_PREFIX (as a path).
zlib HTTP_WITH_ZLIB/td> Depends Used for the compression of data over HTTP or using WebSockets. This will only affect the wthttpd connector. This can be configured by HTTP_WITH_ZLIB (ON/OFF). If zlib is not installed in a default location, its prefix needs to be specified with ZLIB_PREFIX (as a path).
//! [OptDep]