aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2022-02-23 09:14:49 +0100
committerMartin Ridgers <[email protected]>2022-02-23 09:14:49 +0100
commit88b826a248ccaa4fdf911b7e1fe8ca2db6538849 (patch)
tree0f5eb5b3877d12364f71325f7c98e30c6c05b9cb
parentUse AppImage when bundling for Linux to avoid unmet GCC-11 dependencies (diff)
downloadzen-88b826a248ccaa4fdf911b7e1fe8ca2db6538849.tar.xz
zen-88b826a248ccaa4fdf911b7e1fe8ca2db6538849.zip
Added a summary about Linux's zenserver AppImage bundle
-rw-r--r--README.md17
1 files changed, 17 insertions, 0 deletions
diff --git a/README.md b/README.md
index f26f23150..5f5dd4ddb 100644
--- a/README.md
+++ b/README.md
@@ -136,6 +136,23 @@ Note that the command above to set the build variant to debug is optional. Tests
are only built in debug.The `xmake` flags `-vD` can be useful to diagnose
`xmake` issues.
+### Distribution compatibility
+
+Builds for Linux have a dependency on a modern version of the C++ library that
+supports Zen's use of C++20 and the GCC-11 toolchain used (assuming the above
+build instructions are adhered to). However there is no guarantee that the this
+dependency is met when building on one Linux install and running on another. For
+example, at the time of writing the LTS version of Ubuntu and Debian do not have
+GCC-11's version of libstdc++.so.6 available in their package repositories.
+
+To solve this, `xmake bundle` will bundle the required C++ .so and zenserver
+binary together using AppImage. This can briefly be summarised as create a
+squashfs file system containing zenserver and any C++ shared objects list with
+`lld`. This file system is then concatenated with AppImage's runtime. This is
+implemented in `scripts/bundle_linux.sh`. More details can be found here;
+
+https://github.com/AppImage/AppImageKit
+
## Building on Mac
Building on Mac is very similar to Linux; install xmake, clone vcpkg and Zen and