mirror of
https://github.com/RTimothyEdwards/magic.git
synced 2026-09-03 08:25:07 +02:00
While AppImage attempts to be a more portable way of running applications across linux installations, sometime is maybe necessary to run inside docker. So examples are provided, which also provides testing regime to validate how the AppImage can be quickly tested.
138 lines
4.8 KiB
Markdown
138 lines
4.8 KiB
Markdown
This is an AppImage that runs on all GNU/Linux platforms with:
|
|
|
|
* FUSE
|
|
* This excludes non-privileged Docker containers unfortunately, unless pre-extracted.
|
|
* GLIBC 2.17+
|
|
* Cairo 1.15+
|
|
* Supports all Linux x86_64 CPUs
|
|
|
|
This AppImage build is based on EL7 (via CentOS 7)
|
|
|
|
CentOS 7 was first released on 07 July 2014 and went end-of-life on 30 June 2024.
|
|
|
|
# Version Info
|
|
|
|
See the AppImage main binary file naming, release tag information and AppInfo metadata
|
|
for the exact magic version inside the archive. When starting AppImage by default the
|
|
Tcl console banner can also provide version information, also using the `version` Tcl
|
|
command.
|
|
|
|
# Build Info
|
|
|
|
* Based on CentOS 7 (EL7)
|
|
* Tcl/Tk 8.6.16
|
|
* and Magic 8.x
|
|
* all default modules enabled, but without OpenGL (includes Display drivers cairo/X11)
|
|
|
|
# FAQ: How to use
|
|
|
|
Download the *.AppImage file relevant to your platform and run:
|
|
|
|
```
|
|
chmod +x Magic-x86_64.AppImage
|
|
./Magic-x86_64.AppImage
|
|
```
|
|
|
|
Example startup with command line options:
|
|
|
|
```
|
|
./Magic-x86_64.AppImage -d XR -T scmos
|
|
```
|
|
|
|
# FAQ: How to use (inside docker / podman)
|
|
|
|
```
|
|
chmod +x Magic-x86_64.AppImage
|
|
|
|
### Podman or Docker, use :Z when rootless with selinux enabled
|
|
podman run --rm --device /dev/fuse --privileged \
|
|
-v "$(pwd):/tmp/work:Z" -v "/tmp/.X11-unix/X0:/tmp/.X11-unix/X0:Z" \
|
|
-e DISPLAY -ti centos:7
|
|
|
|
### Inside Docker:
|
|
echo "FIXUP yum from vault and update" \
|
|
&& ls -l /etc/yum.repos.d/ \
|
|
&& cp /etc/yum.repos.d/CentOS-Base.repo /tmp/CentOS-Base.repo.old \
|
|
&& sed -e 's/mirror.centos.org/vault.centos.org/g' -i /etc/yum.repos.d/*.repo \
|
|
&& sed -e 's/^#.*baseurl=http/baseurl=http/g' -i /etc/yum.repos.d/*.repo \
|
|
&& sed -e 's/^mirrorlist=http/#mirrorlist=http/g' -i /etc/yum.repos.d/*.repo \
|
|
&& diff -u /tmp/CentOS-Base.repo.old /etc/yum.repos.d/CentOS-Base.repo; \
|
|
yum clean all \
|
|
&& yum -y update \
|
|
&& rm -f /tmp/CentOS-Base.repo.old
|
|
|
|
yum install -y fuse libX11 cairo
|
|
|
|
cd /tmp/work
|
|
|
|
./Magic-x86_64.AppImage -d XR -T scmos
|
|
```
|
|
|
|
# Building Requirements
|
|
|
|
* A reasonably recent GNU/Linux host
|
|
* GNU make
|
|
* Docker 20+
|
|
* Git
|
|
* curl
|
|
|
|
The final build is then packaged into an AppImage using AppImageTool on the host machine.
|
|
|
|
# Build Instructions
|
|
`make`
|
|
|
|
# Installation Instructions
|
|
`make install`
|
|
|
|
# FAQ: Is my CPU supported ?
|
|
|
|
Supports all x86_64 CPUs. The Linux ABI in use is the original x86-64 ABI (v1).
|
|
|
|
Use the command `/lib64/ld-linux-x86-64.so.2 --help` to see which CPUs your
|
|
Linux distribtion supports (and your CPU) look for the word "supported".
|
|
|
|
# FAQ: The DSO versioning link dependencies?
|
|
|
|
The information here provides an outline of what versions to expect from EL7
|
|
of the major dependencies, to assist you in a compatibility check with your
|
|
Linux distribution of choice.
|
|
|
|
The actual versions in our public releases can differ slightly inline with
|
|
the EL7 support compatibility and ABI versioning policies for the support
|
|
lifecycle of the distribution.
|
|
|
|
The most important items are the Direct Dependencies and the availabilty
|
|
of a suitable graphics DSO as per your '-d' choice.
|
|
|
|
Direct Runtime Dependencies (from /prefix/**):
|
|
|
|
| DSO Filename | DSO Symbol Version | Related Packages |
|
|
| :--------------------- | :------------------ | :------------------- |
|
|
| libc.so.6 | GLIBC_2.14 | glibc-2.17-326 |
|
|
| libz.so.1 | ZLIB_1.2.2 | zlib-1.2.7-21 |
|
|
|
|
Optional/Modular Runtime Dependencies (depending on graphics mode):
|
|
|
|
| DSO Filename | DSO Symbol Version | Related Packages |
|
|
| :--------------------- | :------------------ | :------------------- |
|
|
| libcairo.so.2 | | |
|
|
| libcairo.so.2.11512.0 | | cairo-1.15.12-4 |
|
|
| libGL.so.1 | | |
|
|
| libglvnd-glx-1:1.0.1-0 | | mesa-libGL-18.3.4-12 |
|
|
| libGLU.so.1 | | mesa-libGLU-9.0.0-4 |
|
|
|
|
Transitive/Third-Party Runtime Dependencies (for information only):
|
|
|
|
| DSO Filename | DSO Symbol Version | Related Packages |
|
|
| :--------------------- | :------------------ | :------------------- |
|
|
| libc.so.6 | GLIBC_2.35 | glibc-2.17-326 |
|
|
| libstdc++.so.6 | GLIBCXX_3.4 | gcc-4.8.5-44 |
|
|
| libstdc++.so.6 | CXXABI_1.3.9 | gcc-4.8.5-44 |
|
|
| libgcc_s.so.1 | | |
|
|
| libgcc_s-4.8.5-20150702.so.1 | GCC_4.2.0 | libgcc-4.8.5-44 |
|
|
| libxml2.so.2 | LIBXML2_2.6.0 | libxml2-2.9.1-6 |
|
|
| libpng15.so.15 | | |
|
|
| libpng15.so.15.13.0 | PNG16_0 | libpng-1:1.5.13-8 |
|
|
| liblzma.so.5 | XZ_5.0 | xz-libs-5.2.2-2 |
|
|
| libz.so.1 | ZLIB_1.2.9 | zlib-1.2.7-21 |
|