From 598b5d4dcbce8074de54798ad4bbe400f63d217e Mon Sep 17 00:00:00 2001 From: Simon Giesecke Date: Tue, 19 Feb 2019 21:31:30 +0100 Subject: [PATCH] Problem: no documentation of supported platforms Solution: add an initial version --- README.md | 91 ++++++++++++++++++++++++++++++++++++++++++- SupportedPlatforms.md | 32 +++++++++++++++ 2 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 SupportedPlatforms.md diff --git a/README.md b/README.md index b6c05b54..73c2f52f 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,95 @@ abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more. +## Supported platforms -## Building and installation +### Supported platforms with primary CI + +OS and version | Architecture | Compiler and version | Build system | Remarks +-------------- | ------------ | -------------------- | ------------ | ------- +Android NDK 11c | ARM | gcc ? | autotools | +Ubuntu 14.04.5 LTS (trusty) | amd64 | clang 5.0.0 | autotools | STABLE, extras: GSSAPI, PGM, NORM, C++98 mode only +Ubuntu 14.04.5 LTS (trusty) | amd64 | gcc 4.8.4 | autotools | STABLE, DRAFT, extras: GSSAPI, PGM, NORM, TIPC, IPV6, also POLLER=poll, POLLER=select, also valgrind and address sanitizer executions +Ubuntu 14.04.5 LTS (trusty) | amd64 | gcc 4.8.4 | CMake 3.12.2 | STABLE +Windows Server 2012 R2 | x86 | Visual Studio 2008 | CMake 3.12.2 | DRAFT +Windows Server 2012 R2 | x86 | Visual Studio 2010 SP1 | CMake 3.12.2 | DRAFT +Windows Server 2012 R2 | x86 | Visual Studio 2012 Update 5 | CMake 3.12.2 | DRAFT +Windows Server 2012 R2 | x86, amd64 | Visual Studio 2013 Update 5 | CMake 3.12.2 | DRAFT, STABLE (x86 Release only), also POLLER=epoll +Windows Server 2012 R2 | x86 | Visual Studio 2015 Update 3 | CMake 3.12.2 | DRAFT +Windows Server 2016 | x86 | Visual Studio 2017 15.9.6 | CMake 3.13.3 | DRAFT +cygwin 3.0.0 on Windows Server 2012 R2 | amd64 | gcc 7.4.0 | CMake 3.6.2 | DRAFT +MSYS2 ? on Windows Server 2012 R2 | amd64 | gcc 6.4.0 | CMake ? | DRAFT +Mac OS X 10.13 | amd64 | Xcode 9.4.1, Apple LLVM 9.1.0 | autotools | STABLE, DRAFT +Mac OS X 10.13 | amd64 | Xcode 9.4.1, Apple LLVM 9.1.0 | CMake 3.11.4 | DRAFT + +Note: the platforms are regularly updated by the service providers, so this information might get out of date +without any changes on the side of libzmq. For Appveyor, refer to https://www.appveyor.com/updates/ regarding +platform updates. For travis-ci, refer to https://changelog.travis-ci.com/ regarding platform updates. + +### Supported platforms with secondary CI + +OS and version | Architecture | Compiler and version | Build system | Remarks +-------------- | ------------ | -------------------- | ------------ | ------- +CentOS 6 | x86, amd64 | ? | autotools | +CentOS 7 | amd64 | ? | autotools | +Debian 8.0 | x86, amd64 | ? | autotools | +Debian 9.0 | ARM64, x86, amd64 | ? | autotools | +Fedora 28 | ARM64, ARM32, amd64 | ? | autotools | +Fedora 29 | ARM64, ARM32, amd64 | ? | autotools | +Fedora Rawhide | ARM64, ARM32, amd64 | ? | autotools | +RedHat Enterprise Linux 7 | amd64, ppc64 | ? | autotools | +SuSE Linux Enterprise 12 SP4 | ARM64, amd64, ppc64, s390x | ? | autotools | +SuSE Linux Enterprise 15 | amd64 | ? | autotools | +xUbuntu 12.04 | x86, amd64 | ? | autotools | +xUbuntu 14.04 | x86, amd64 | ? | autotools | +xUbuntu 16.04 | x86, amd64 | ? | autotools | +xUbuntu 18.04 | x86, amd64 | ? | autotools | +xUbuntu 18.10 | x86, amd64 | ? | autotools | + +### Supported platforms with known active users + +At the time of writing, no explicit reports have been available. Please report your experiences by opening a PR +adding an entry or moving an entry from the section below. + +Under "last report", please name either the SHA1 in case of an unreleased version, or the version number in +case of a released version. + +OS and version | Architecture | Compiler and version | Build system | Last report | Remarks +-------------- | ------------ | -------------------- | ------------ | ----------- | ------- + + +### Supported platforms without known active users + +Note: this list is incomplete and inaccurate and still needs some work. + +OS and version | Architecture | Compiler and version | Build system | Remarks +-------------- | ------------ | -------------------- | ------------ | ------- +Any Linux distribution | x86, amd64 | gcc ?+, clang ?+, icc ?+ | autotools, CMake | +SunOS, Solaris | x86, amd64 | SunPro | autotools, CMake | +GNU/kFreeBSD | ? | ? | autotools, CMake | +FreeBSD | ? | ? | autotools, CMake | +NetBSD | ? | ? | autotools, CMake | +OpenBSD | ? | ? | autotools, CMake | +HP-UX | ? | ? | autotools, CMake | +GNU/Hurd | ? | ? | autotools | +VxWorks 6.8 | ? | ? | ? | +Windows CE | ? | ? | ? | +Windows UWP | ? | ? | ? | +OpenVMS | ? | ? | ? | + +### Unsupported platforms + +OS and version | Architecture | Compiler and version | Remarks +-------------- | ------------ | -------------------- | ------- +QNX 6.3 | ? | gcc 3.3.5 | see #3371, support was added by a user, but not contributed to upstream +Windows 10 | ARM, ARM64 | Visual Studio 2017 | see #3366, probably only minor issues + +For more details, see [here](SupportedPlatforms.md). + +For some platforms (Linux, Mac OS X), [prebuilt binary packages are supplied by the ZeroMQ organization](#installation). +For other platforms, you need to [build your own binaries](#build). + +## Installation of binary packages ### Linux @@ -58,7 +145,7 @@ For OSX users, packages are available via brew. brew install zeromq -### Build from sources +## Build from sources To build from sources, see the INSTALL file included with the distribution. diff --git a/SupportedPlatforms.md b/SupportedPlatforms.md new file mode 100644 index 00000000..a5f51b84 --- /dev/null +++ b/SupportedPlatforms.md @@ -0,0 +1,32 @@ +libzmq supports a large variety of platforms. The list of platforms can be found in the [README](README.md#platforms). +The degree to which this support is tested varies. + +Platforms are currently assigned to one of the following categories: +- supported platforms with primary CI (travis-ci.org, appveyor.com): https://travis-ci.org/zeromq/libzmq, https://ci.appveyor.com/project/zeromq/libzmq +- supported platforms with secondary CI (openSUSE Build Service): https://build.opensuse.org/project/subprojects/network:messaging:zeromq +- supported platforms with known active users +- supported platforms without known active users +- unsupported platforms + +Supported platforms with primary CI +- have builds and tests run for the master branch +- have builds and tests run for every pull request +- it is a precondition for merging a pull request that no builds or tests of these platforms are broken +- contributors can easily enable these builds and tests for their branches in their fork + +Suported platforms with secondary CI +- have builds and tests run for the master branch +- these are monitored periodically by the project maintainers, and efforts are made to fix any broken builds or tests in a timely manner +- it is a precondition for a release that no builds or tests of these platforms are broken + +Supported platforms with known active users +- have recently been reported to the maintainers (e.g. via pull requests modifying this document) as having working builds and possibly tests + +Supported platforms without known active users +- have some platform-specific code within libzmq, but it is not known if it is still working +- have been reported to the maintainers as having working builds and possibly tests only significant time/changes ago +- or are assumed to work due to similarity to the above platforms + +Unsupported platforms +- are either reported to be non-working for some reason that is not trivial to fix or are explicitly missing some required platform-specific code +