Skip to content

Target systems

Kai Pastor edited this page Jan 16, 2024 · 139 revisions

Notes on target systems

Windows, macOS and Android packages

We provide the following Mapper packages for Windows, macOS and Android via GitHub Releases, built via Azure Pipelines:

  • The current stable release.
  • master: Beta-quality preview of the next patch release, build from the master branch.
  • unstable: Alpha-quality preview of the next feature release, build from the dev branch.

Linux packages on OBS

We provide the following Mapper packages for a number of Linux distributions on openSUSE Build Service (OBS):

  • openorienteering-mapper: The current stable release.
  • openorienteering-mapper-master: Beta-quality preview of the next patch release, build from the master branch.
  • openorienteering-mapper-unstable: Alpha-quality preview of the next feature release, build from the dev branch.

Builds need to be triggered manually by running the sources services for the OBS package. Changes to the packaging, or source code changes which are to be tested explicitly before being released, can be tested in home:dg0yt:staging.

The published downloads are available from software.opensuse.org
openorienteering-mapper | openorienteering-mapper-master | openorienteering-mapper-unstable

Packages in Linux Distributions

Packaging status

Source: https://repology.org/metapackage/openorienteering-mapper

Arch Linux

Debian

Fedora

Ubuntu

openSUSE

Slackware

Component Version Matrix

Roadmap, v1.0

Target System CMake C++ Qt Poly- clipping PROJ GDAL Remark
minimum 3.3 full C++14 5.6 6.4.2 4.9 2
Superbuild 3.x full C++14 5.12 >= 6.4.2 6.x 2.x est.

Unstable builds, v0.9

Target System EOL CMake C++ Qt Poly- clipping PROJ GDAL Remark
minimum 3.3 full C++14 5.5 6.4.2 4.9 2.0.0
Github Release¹ 5.12.7 + qtbase_5.12.9¹ 6.4.2¹ 7.1.1¹ 3.1.3¹ Continuous Integration¹
__Windows MinGW 3.17 gcc 10.2.0 MinGW 8.0, NSIS 3.05
_v0.9.3 5.12.7¹ 6.4.2¹ 6.3.1¹ 3.0.4¹ Superbuild v20200330
__Windows MinGW 3.17 gcc 9.3.0 MinGW 8.0
_v0.9.2 5.12.7¹ 6.4.2¹ 6.3.1 3.0.4¹ Superbuild v20200214
_v0.9.1 5.12.6¹ 6.4.2¹ 6.2.1 3.0.2¹ Superbuild v20191114
_v0.9.0 5.12.5¹ 6.4.2¹ 6.2.0 3.0.1¹ Superbuild v20191019
__Android >= 4.1 NDK r19c
__macOS AppleClang 10.0.0
__Windows MinGW gcc 9.1.0 MinGW 7.0, NSIS 3.04
Arch Linux gcc OBS, AUR
Debian 10 2024-06 3.13.4 gcc 8.3.0 5.11.3 6.1.3a 5.2.0 2.4.0 OBS
Debian 11 2026-06 3.18.4 gcc 10.2.1 5.15.2 6.4.2 7.2.1 3.2.2 OBS
Debian 12 2028-06 3.25.1 gcc 12.2.0 5.15.8 6.4.2 9.1.1 3.6.2 OBS
Debian testing (WIP) gcc OBS
Debian unstable (WIP) gcc Debian: Debian
Fedora 38 2024-05 3.27.7 gcc 13.2.0 5.15.11 6.4.2 9.1.1 3.6.4
Fedora 39 3.27.7 gcc 13.1.0 5.15.11 6.4.2 9.2.1 3.7.3
Fedora Rawhide gcc OBS
FreeBSD 12.0 clang Port
openSUSE Leap 15.2 2021-11 gcc 6.4.2² OBS
openSUSE Tumbleweed gcc 6.4.2² OBS
Slackware 14.2 gcc (SBo) (SBo) (SBo) (SBo) SlackBuilds.org
Ubuntu Focal (20.04) (LTS) 2025-04 3.16.3 gcc 9.30 5.12.8 6.4.2 6.3.1 3.0.4 OBS
Ubuntu Groovy (20.10) 2021-07 gcc OBS
vcpkg system recent system 5.15.2, 6
GNU Guix gcc 5.15.2
nixpkgs stable 21.11 gcc
Windows MinGW MSYS2 gcc - For development on Windows

(Badges for Arch Linux, Debian, Fedora, openSUSE, MSYS2 by https://repology.org)

¹) OpenOrienteering Superbuild

²) There is no openSUSE package for polyclipping so it is build from source with Mapper.

End of life

Target System EOL CMake C++ Qt Poly- clipping PROJ GDAL Remark
Debian 9.0 2022-06 3.7.1 gcc 6.3.0 5.7.1 6.1.3a 4.9.3 2.1.2 OBS
Debian 10 2024-06 3.13.4 gcc 8.3.0 5.11.3 6.1.3a 5.2.0 2.4.0 OBS
Debian 11 2026-06 3.18.4 gcc 10.2.1 5.15.2 6.4.2 7.2.1 3.2.2 OBS
Debian 12 2028-06 3.25.1 gcc 12.2.0 5.15.8 6.4.2 9.1.1 3.6.2 OBS
Fedora 27 2018-11 3.9.3 gcc 7.2.1 5.9.1 6.4.2 4.9.3 2.1.4
Fedora 28 2019-05 3.11.0 gcc 8.0.1 5.10.1 6.4.2 4.9.3 2.2.4
Fedora 29 2019-11 3.14.5 gcc 8.3.1 5.12.5 6.4.2 4.9.3 2.3.2
Fedora 30 2020-05 3.17.0 gcc 9.0.1 5.12.6 6.4.2 5.2.0 2.3.2 OBS
Fedora 31 2020-11 3.17.0 gcc 9.2.1 5.13.2 6.4.2 5.2.0 2.3.2 OBS
Fedora 32 2021-05 3.17.4 gcc 10.0.1 5.14.2 6.4.2 6.3.2 3.0.4 OBS
Fedora 32 2021-05 3.17.4 gcc 10.0.1 5.14.2 6.4.2 6.3.2 3.0.4
Fedora 33 2021-11 3.19.7 gcc 10.3.1 5.15.2 6.4.2 6.3.2 3.1.4
Fedora 34 2022-05 3.20.5 gcc 11.3.1 5.15.2 6.4.2 7.2.1 3.2.2
Fedora 35 2022-12 3.24.2 gcc 12.2.0 5.15.2 6.4.2 8.2.1 3.3.3
Fedora 36 2023-05 3.26.3 gcc 12.2.1 5.15.3 6.4.2 8.2.1 3.4.3
Fedora 37 2023-11 3.27.7 gcc 13.2.0 5.15.10 6.4.2 9.0.1 3.6.2
openSUSE Leap 42.3 2019-06 3.5.2 gcc 5.3.1 5.6.2 6.4.2² 4.9.2 2.1.3
openSUSE Leap 15.0 2019-12 3.10.2 gcc 7.3.1 5.9.4 6.4.2² 4.9.3 2.2.4
openSUSE Leap 15.1 2021-01 3.10.2 gcc 7.4.0 5.9.7 6.4.2² 4.9.3 2.4.1 OBS
openSUSE Leap 15.2 2021-12
openSUSE Leap 15.3 2022-12
openSUSE Leap 15.4 2023-11
Ubuntu Bionic (18.04) (LTS) 2023-03 3.10.2 gcc 8.2.0 5.9.5 6.4.2 4.9.3 2.2.3 OBS
Ubuntu Eoan (19.10) 2020-07 3.13.4 gcc 9.2.1 5.12.4 6.4.2 5.2.0 2.4.2 OBS
Ubuntu Focal (20.04) 2025-04
Ubuntu Jammy (22.04) 2027-04
Ubuntu Kinetic(22.10) 2023-07
Ubuntu Lobster(23.04) 2024-01

Limited to 0.8.x releases

Target System CMake C++ Qt Poly- clipping Proj.4 GDAL Remark
Android < 4.1 (API level < 16) 3.7 gcc 4.9 5.6.2 (6.4.2) 4.9.3 2.2.3 local superbuild
Debian 8.0 3.0.2 gcc 4.9.2 5.3.2 6.1.3a 4.8.0 1.10.1 OBS
Linux Mint 18.x (= Ubuntu 16.04) 3.2.2 gcc 5.2.1 5.5.1 6.1.3a 4.9.2 1.11.3 no build
OS X <= 10.7 3.x XCode 7.0 5.6.2 (6.4.2) 4.9.3 2.2.3 local superbuild
Ubuntu 16.04 3.5.1 gcc 5.4.0, gcc 5.3.1 5.5.1 6.1.3a 4.9.2 1.11.3 OBS
  • CMake < 3.1 does not support CMAKE_CXX_STANDARD.
  • CMake < 3.2 does not support BYPRODUCTS in ADD_CUSTOM_TARGET. Solved by patch.
  • Android: LTS Qt > 5.6 (i.e. 5.9) requires at least API level 16.
  • macOS: LTS Qt > 5.6 (i.e. 5.9) requires at least macOS 10.10.
  • Qt < 5.6 does not provide QVersionNumber.
  • Qt < 5.4 does not provide QTimer::singleShot(int msec, const QObject *receiver, PointerToMemberFunction method).
  • Qt < 5.4 does not provide qUtf8Printable(const QString &).
  • Qt < 5.4 does not provide QString::splitRef(...).
  • Qt < 5.5 does not provide qInfo(...).
  • gcc < 5.0 has incomplete support for C++14.
  • gcc 4.9 for Android has incomplete headers (e.g. std::round).
  • GDAL < 2 lacks relevant interfaces. (However, building without GDAL would be possible.)

Limited to 0.6.x releases

Target System CMake C++ Qt Poly- clipping Proj.4 GDAL Remark
Linux Mint 17.x (= Ubuntu 14.04) 2.8.12 gcc 4.8.2 5.2.1 6.1.3a 4.8.0 1.10.1 no build
openSUSE 13.2 3.0.2 gcc 4.8.3 5.3.2 6.1.3a 4.8.0 -.-.- OBS
Ubuntu 14.04 2.8.12 gcc 4.8.2 5.2.1 6.1.3a 4.8.0 1.10.1 OBS
  • gcc < 4.9 does not provide C++14 std::make_unique.
  • gcc 4.8 strictly implements a "bug in the standard" which forces the creation of temporaries when using uniform initialization in member initialization and thus leading to crashes when accessing these temporaries later (cf. http://stackoverflow.com/questions/25561387/spurious-warning-about-binding-temporary-to-reference-member-in-constructor), observed for ReplaceSymbolSetOperation constructor.
  • Qt < 5.3 needs extra treatment in some places.
  • Qt < 5.4 does not provide QTimer::singleShot(int msec, const QObject *receiver, PointerToMemberFunction method).
  • Qt < 5.4 does not provide qUtf8Printable(const QString &).
  • Qt < 5.4 does not provide QString::splitRef(...).
  • Qt < 5.5 does not provide qInfo(...).
  • CMake < 3.0 needs a windres workaround in src/CMakeLists.txt when locally cross-compiling for windows.
  • CMake < 3.1 does not support CMAKE_CXX_STANDARD.
  • CMake < 3.2 does not support BYPRODUCTS in ADD_CUSTOM_TARGET.
  • The Android APKs are built with qmake in Qt Creator, but CMake is used to build dependencies.