diff options
| author | gabrix73 <gabriel1@frozenstar.info> | 2026-04-12 16:59:35 +0200 |
|---|---|---|
| committer | gabrix73 <gabriel1@frozenstar.info> | 2026-04-12 16:59:35 +0200 |
| commit | b0b57a5a2649d9d40f132633dd9a97aa8d771c8d (patch) | |
| tree | 3e62bc7e79f20629406e6c44b39527426a90c5d8 | |
| parent | 582284054e6aeafbe270afdc6ae5a476469fe6f7 (diff) | |
| download | khimera-b0b57a5a2649d9d40f132633dd9a97aa8d771c8d.tar.gz khimera-b0b57a5a2649d9d40f132633dd9a97aa8d771c8d.tar.xz khimera-b0b57a5a2649d9d40f132633dd9a97aa8d771c8d.zip | |
fix: build AppImage entirely inside container to avoid symlink cross-device errors
| -rw-r--r-- | Makefile | 29 |
1 files changed, 16 insertions, 13 deletions
@@ -91,30 +91,33 @@ appimage: @echo "$(BLUE)[AppImage]$(NC) Building Docker image..." docker build --network=host -t khimera-builder -f docker/Dockerfile.appimage . @echo "$(BLUE)[AppImage]$(NC) Compiling and packaging..." + @mkdir -p $(OUTPUT_DIR)/Linux docker run --rm --privileged --network=host \ - -v $(shell pwd):/build \ - -w /build \ + -v $(shell pwd):/src:ro \ + -v $(shell pwd)/$(OUTPUT_DIR)/Linux:/out \ khimera-builder \ bash -c " \ + cp -r /src /work && cd /work && \ go mod tidy && \ CGO_ENABLED=1 go build \ -ldflags='$(LDFLAGS)' \ - -o /tmp/khimera-bin \ + -o /work/khimera-bin \ ./khimera-main.go && \ - mkdir -p AppDir/usr/bin AppDir/usr/share/icons/hicolor/256x256/apps && \ - cp /tmp/khimera-bin AppDir/usr/bin/khimera && \ - cp appimage/khimera.desktop AppDir/khimera.desktop && \ - cp appimage/khimera.png AppDir/usr/share/icons/hicolor/256x256/apps/khimera.png && \ - cp appimage/khimera.png AppDir/khimera.png && \ + mkdir -p /work/AppDir/usr/bin \ + /work/AppDir/usr/share/applications \ + /work/AppDir/usr/share/icons/hicolor/256x256/apps && \ + cp /work/khimera-bin /work/AppDir/usr/bin/khimera && \ + cp /work/appimage/khimera.desktop /work/AppDir/usr/share/applications/khimera.desktop && \ + cp /work/appimage/khimera.png /work/AppDir/usr/share/icons/hicolor/256x256/apps/khimera.png && \ + cd /work && \ linuxdeploy --appdir AppDir \ --library /usr/lib/x86_64-linux-gnu/libGL.so.1 \ --library /usr/lib/x86_64-linux-gnu/libX11.so.6 \ - --output appimage \ + --desktop-file AppDir/usr/share/applications/khimera.desktop \ + --icon-file AppDir/usr/share/icons/hicolor/256x256/apps/khimera.png \ + --output appimage && \ + cp /work/*.AppImage /out/Khimera-v$(VERSION)-x86_64.AppImage \ " - @mkdir -p $(OUTPUT_DIR)/Linux - @mv Khimera*.AppImage $(OUTPUT_DIR)/Linux/Khimera-v$(VERSION)-x86_64.AppImage 2>/dev/null || \ - mv khimera*.AppImage $(OUTPUT_DIR)/Linux/Khimera-v$(VERSION)-x86_64.AppImage - @rm -rf AppDir @echo "$(GREEN)✓ AppImage build complete!$(NC)" @echo "Output: $(OUTPUT_DIR)/Linux/Khimera-v$(VERSION)-x86_64.AppImage" |
