# Build Bambu Slicer in a container # # Build an AppImage using rootless Podman (refer to https://github.com/containers/podman/blob/main/docs/tutorials/rootless_tutorial.md): # rm -rf build; podman build . -t orca-slicer-builder && podman run --rm localhost/orca-slicer-builder /bin/bash -c 'tar -c $(find build | grep ubu64.AppImage | head -1)' | tar -xv # # Troubleshooting the build container: # podman run -it --name orca-slicer-builder localhost/orca-slicer-builder /bin/bash # # Debugging the resulting AppImage: # 1) Install `gdb` # 2) In a terminal in the same directory as the AppImage, start it with following: # echo -e "run\nbt\nquit" | gdb ./BambuStudio_ubu64.AppImage # 3) Find related issue using backtrace output for clues and add backtrace to it on github # # Docker alternative AppImage build syntax (use this if you can't install podman): # rm -rf build; docker build . --file Containerfile -t orca-slicer-builder; docker run --rm orca-slicer-builder /bin/bash -c 'tar -c $(find build | grep ubu64.AppImage | head -1)' | tar -xv # # # TODO: bind mount OrcaSlicer to inside the container instead of COPY to enable faster rebuilds during dev work. FROM docker.io/ubuntu:20.04 LABEL maintainer "DeftDawg " # Disable interactive package configuration RUN apt-get update && \ echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections # Add a deb-src RUN echo deb-src http://archive.ubuntu.com/ubuntu \ $(cat /etc/*release | grep VERSION_CODENAME | cut -d= -f2) main universe>> /etc/apt/sources.list RUN apt-get update && apt-get install -y \ git \ build-essential \ autoconf pkgconf m4 \ cmake extra-cmake-modules \ libglu1-mesa-dev libglu1-mesa-dev \ libwayland-dev libxkbcommon-dev wayland-protocols \ eglexternalplatform-dev libglew-dev \ libgtk-3-dev \ libdbus-1-dev \ libcairo2-dev \ libgtk-3-dev libwebkit2gtk-4.0-dev \ libsoup2.4-dev \ libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev libgstreamerd-3-dev \ libmspack-dev \ libosmesa6-dev \ libssl-dev libcurl4-openssl-dev libsecret-1-dev \ libudev-dev \ curl \ wget \ file \ sudo COPY ./ OrcaSlicer WORKDIR OrcaSlicer # These can run together, but we run them seperate for podman caching # Update System dependencies RUN ./BuildLinux.sh -u # Build dependencies in ./deps RUN ./BuildLinux.sh -d # Build slic3r RUN ./BuildLinux.sh -s # Build AppImage ENV container podman RUN ./BuildLinux.sh -i