Skip to content

Target systems

Kai Pastor edited this page Apr 11, 2020 · 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

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 CMake C++ Qt Poly- clipping PROJ GDAL Remark
minimum 3.3 full C++14 5.5 6.4.2 4.9 2.0.0
Superbuild 5.12.7¹ 6.4.2¹ 6.3.1¹ 3.0.4¹
_Android >= 4.1 3.15.3 NDK r19c Continuous Integration¹
_macOS 3.15.3 AppleClang 10.0.0 Continuous Integration¹
_Windows MinGW 3.14.5 gcc 9.3.0 Continuous Integration¹
Arch Linux gcc OBS, AUR
Debian 9.0 3.7.1 gcc 6.3.0 5.7.1 6.1.3a 4.9.3 2.1.2 OBS
Debian testing gcc OBS
Debian unstable gcc no build
Fedora 27 (end of life) 3.9.3 gcc 7.2.1 5.9.1 6.4.2 4.9.3 2.1.4 OBS
Fedora 28 (end of life) 3.11.0 gcc 8.0.1 5.10.1 6.4.2 4.9.3 2.2.4 OBS
Fedora 29 gcc OBS
Fedora 30 gcc OBS
Fedora Rawhide gcc OBS
FreeBSD 12.0 clang Port
openSUSE Leap 42.3 (end of life) 3.5.2 gcc 5.3.1 5.6.2 6.4.2² 4.9.2 2.1.3 OBS
openSUSE Leap 15.0 (until November 2019) 3.10.2 gcc 7.3.1 5.9.4 6.4.2² 4.9.3 2.2.4 OBS
openSUSE Leap 15.1 (until November 2020) 3.10.2 gcc 7.4.0 5.9.7 6.4.2² 4.9.3 2.4.1 OBS
openSUSE Leap 15.2 (under development) gcc 6.4.2² OBS
openSUSE Tumbleweed gcc 6.4.2² OBS
Slackware 14.2 gcc (SBo) (SBo) (SBo) (SBo) SlackBuilds.org
Ubuntu Bionic (18.04LTS) 3.10.2 gcc 8.2.0 5.9.5 6.4.2 4.9.3 2.2.3 OBS
Ubuntu Cosmic (18.10) 3.12.1 gcc 8.2.0 5.11.1 6.4.2 5.1.0 2.3.2 OBS
Ubuntu Next (19.04) gcc OBS
Windows MinGW Dev gcc - For development on Windows

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

¹) OpenOrienteering Superbuild

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

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.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.
Clone this wiki locally