# README This is a community-made AppImage creation script. There are some reported bugs with it. To generate an AppImage yourself, feel free to look at stable-linux.yml in the separate `void-builder/` repo, which runs a GitHub Action that builds the AppImage you see on our website. # Void AppImage Creation Script This script automates the process of creating an AppImage for the Void Editor using Docker. It works on macOS and Linux platforms. ## Requirements * **Docker:** The script relies on Docker to build the AppImage inside a container. * **macOS or Linux:** The script is designed for these platforms. On macOS, it generates a Linux-compatible AppImage. * **Internet Connection:** Required for downloading necessary tools (like `docker-buildx` and `appimagetool` inside the Docker container). ## Prerequisites 1. **Install Docker:** * **macOS:** Download and install Docker Desktop from [docker.com](docker.com). * **Ubuntu:** ```bash sudo apt install docker.io ``` * **Arch Linux:** ```bash sudo pacman -S docker ``` * **Fedora:** ```bash sudo dnf install docker ``` 2. **Set Docker User Group:** Docker requires users to be part of the `docker` group to run Docker commands without `sudo`. ```bash sudo usermod -aG docker $USER ``` After running this command, log out and log back in for the group changes to take effect. 3. **Enable and Start Docker:** ```bash sudo systemctl enable docker sudo systemctl start docker ``` ## Ubuntu Dependencies (Installed via Docker) These dependencies are installed within the Docker container (Ubuntu 20.04 base). You generally don't need to install them manually: * `libfuse2` * `libglib2.0-0` * `libgtk-3-0` * `libx11-xcb1` * `libxss1` * `libxtst6` * `libnss3` * `libasound2` * `libdrm2` * `libgbm1` ## Usage Instructions 1. **Clone or Download the Script:** Save the script to your system as `create_appimage.sh`. 2. **Make the Script Executable:** ```bash chmod +x create_appimage.sh ``` 3. **Copy Required Files:** Copy the following files to the directory where the app binary is being bundled (created during the build process): * `create_appimage.sh` * `void.desktop` * `void.png` 4. **Run the Script:** ```bash ./create_appimage.sh ``` 5. **Result:** After the script completes, it will generate an AppImage named `Void-x86_64.AppImage` (or similar, depending on your architecture) in the current directory. ## Script Overview * **Platform Check:** Checks for macOS or Linux. Exits if unsupported. * **Docker Checks:** Ensures Docker is installed and running. * **Buildx Installation:** Installs `docker buildx` if missing. * **`appimagetool` Download:** Downloads `appimagetool` inside the Docker container. * **Dockerfile Creation:** Creates a temporary `Dockerfile.build` for the Ubuntu-based environment. * **Docker Image Build:** Builds a Docker image and runs the build process. * **AppImage Creation:** * Creates the `VoidApp.AppDir` structure. * Copies binaries, resources, and the `.desktop` entry. * Copies `void.desktop` and `void.png`. * Strips unnecessary symbols from the binary. * Runs `appimagetool` to generate the AppImage. * **Cleanup:** Removes the temporary `Dockerfile.build`. ## Troubleshooting * **Docker Not Running:** Ensure Docker is installed and running. * **Permission Issues:** Try running the script with `sudo` or check Docker permissions. * **Outdated Dependencies:** Ensure you have the minimum required versions. ## License This script is provided "as is". It is free to use, modify, and distribute, but comes with no warranty.