diff options
| author | Martin Ridgers <[email protected]> | 2022-02-23 09:14:49 +0100 |
|---|---|---|
| committer | Martin Ridgers <[email protected]> | 2022-02-23 09:14:49 +0100 |
| commit | 88b826a248ccaa4fdf911b7e1fe8ca2db6538849 (patch) | |
| tree | 0f5eb5b3877d12364f71325f7c98e30c6c05b9cb | |
| parent | Use AppImage when bundling for Linux to avoid unmet GCC-11 dependencies (diff) | |
| download | zen-88b826a248ccaa4fdf911b7e1fe8ca2db6538849.tar.xz zen-88b826a248ccaa4fdf911b7e1fe8ca2db6538849.zip | |
Added a summary about Linux's zenserver AppImage bundle
| -rw-r--r-- | README.md | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -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 |