summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgabrix73 <gabriel1@frozenstar.info>2026-04-12 16:59:35 +0200
committergabrix73 <gabriel1@frozenstar.info>2026-04-12 16:59:35 +0200
commitb0b57a5a2649d9d40f132633dd9a97aa8d771c8d (patch)
tree3e62bc7e79f20629406e6c44b39527426a90c5d8
parent582284054e6aeafbe270afdc6ae5a476469fe6f7 (diff)
downloadkhimera-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--Makefile29
1 files changed, 16 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index a53c992..464bb91 100644
--- a/Makefile
+++ b/Makefile
@@ -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"