diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..378649ff6e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,28 @@ +Build +Build.bat +/build/ +deps/build +MYMETA.json +MYMETA.yml +_build +blib +xs/buildtmp +*.o +*.log +MANIFEST.bak +xs/MANIFEST.bak +xs/assertlib* +.init_bundle.ini +.vs/* +local-lib +/src/TAGS +/.vscode/ +build-linux/* +deps/build-linux/* +**/.DS_Store +install_* +build_*/ +SVG +Dockerfile +DockerBuild.sh +DockerRun.sh diff --git a/DockerBuild.sh b/DockerBuild.sh new file mode 100755 index 0000000000..3546bf2b83 --- /dev/null +++ b/DockerBuild.sh @@ -0,0 +1,15 @@ +#!/bin/bash +PROJECT_ROOT=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)") + +set -x + +# Wishlist hint: For developers, creating a Docker Compose +# setup with persistent volumes for the build & deps directories +# would speed up recompile times significantly. For end users, +# the simplicity of a single Docker image and a one-time compilation +# seems better. +docker build -t bambustudio \ + --build-arg USER=$USER \ + --build-arg UID=$(id -u) \ + --build-arg GID=$(id -g) \ + $PROJECT_ROOT diff --git a/DockerRun.sh b/DockerRun.sh new file mode 100755 index 0000000000..31319fb810 --- /dev/null +++ b/DockerRun.sh @@ -0,0 +1,23 @@ +#!/bin/bash +set -x +# Just in case, here's some other things that might help: +# Force the container's hostname to be the same as your workstation +# -h $HOSTNAME \ +# If there's problems with the X display, try this +# -v /tmp/.X11-unix:/tmp/.X11-unix \ +docker run \ + `# Use the hosts networking. Printer wifi and also dbus communication` \ + --net=host \ + `# Run as your workstations username to keep permissions the same` \ + -u $USER \ + `# Bind mount your home directory into the container for loading/saving files` \ + -v $HOME:/home/$USER \ + `# Pass the X display number to the container` \ + -e DISPLAY=$DISPLAY \ + `# It seems that libGL and dbus things need privileged mode` \ + --privileged=true \ + `# Attach tty for running bambu with command line things` \ + -ti \ + `# Pass all parameters from this script to the bambu ENTRYPOINT binary` \ + bambustudio $* + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..3f34d66a29 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,92 @@ +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 \ + autoconf \ + build-essential \ + cmake \ + curl \ + eglexternalplatform-dev \ + extra-cmake-modules \ + file \ + git \ + libcairo2-dev \ + libcurl4-openssl-dev \ + libdbus-1-dev \ + libglew-dev \ + libglu1-mesa-dev \ + libglu1-mesa-dev \ + libgstreamer1.0-dev \ + libgstreamerd-3-dev \ + libgstreamer-plugins-base1.0-dev \ + libgstreamer-plugins-good1.0-dev \ + libgtk-3-dev \ + libgtk-3-dev \ + libmspack-dev \ + libosmesa6-dev \ + libsecret-1-dev \ + libsoup2.4-dev \ + libssl-dev \ + libudev-dev \ + libwayland-dev \ + libwebkit2gtk-4.0-dev \ + libxkbcommon-dev \ + locales \ + locales-all \ + m4 \ + pkgconf \ + sudo \ + wayland-protocols \ + wget + +# Change your locale here if you want. See the output +# of `locale -a` to pick the correct string formatting. +ENV LC_ALL=en_US.utf8 +RUN locale-gen $LC_ALL + +# Set this so that Bambu Studio doesn't complain about +# the CA cert path on every startup +ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt + +COPY ./ BambuStudio + +WORKDIR BambuStudio + +# 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 + +# It's easier to run Bambu Studio as the same username, +# UID and GID as your workstation. Since we bind mount +# your home directory into the container, it's handy +# to keep permissions the same. Just in case, defaults +# are root. +SHELL ["/bin/bash", "-l", "-c"] +ARG USER=root +ARG UID=0 +ARG GID=0 +RUN [[ "$UID" != "0" ]] \ + && groupadd -g $GID $USER \ + && useradd -u $UID -g $GID $USER + +# Using an entrypoint instead of CMD because the binary +# accepts several command line arguments. +ENTRYPOINT ["/BambuStudio/build/package/bin/bambu-studio"] diff --git a/version.inc b/version.inc index 6376bb895b..399ebeda92 100644 --- a/version.inc +++ b/version.inc @@ -10,4 +10,5 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "1") endif() -set(SLIC3R_VERSION "01.05.00.60") + +set(SLIC3R_VERSION "01.05.00.60") \ No newline at end of file