%global build_number 52 %global version_full 02.05.01.52 Name: bambu-studio Version: 2.5.1 Release: 1%{?dist} Summary: Feature-rich 3D printing slicer for Bambu Lab and other 3D printers License: AGPL-3.0-only URL: https://github.com/bambulab/BambuStudio Source0: %{name}-%{version}.tar.gz # Build requirements - based on BuildLinux.sh Fedora dependencies BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake >= 3.14 BuildRequires: perl BuildRequires: perl-FindBin BuildRequires: m4 BuildRequires: git-core BuildRequires: gettext BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool BuildRequires: texinfo BuildRequires: file BuildRequires: wget # Graphics and GUI libraries BuildRequires: mesa-libGL-devel BuildRequires: mesa-libGLU-devel BuildRequires: mesa-libOSMesa-devel BuildRequires: gtk3-devel BuildRequires: webkit2gtk4.1-devel BuildRequires: dbus-devel BuildRequires: eglexternalplatform-devel BuildRequires: libmspack-devel BuildRequires: libsecret-devel # Wayland support BuildRequires: extra-cmake-modules BuildRequires: wayland-devel BuildRequires: wayland-protocols-devel BuildRequires: libxkbcommon-devel # Media libraries BuildRequires: gstreamer1-devel BuildRequires: gstreamer1-plugins-base-devel BuildRequires: gstreamer1-plugin-openh264 BuildRequires: gstreamermm-devel # Bundled dependency build tools BuildRequires: nasm BuildRequires: yasm BuildRequires: x264-devel # Build system BuildRequires: ninja-build # Other utilities BuildRequires: libcurl-devel BuildRequires: openssl-devel BuildRequires: libquadmath-devel BuildRequires: bzip2-devel # Desktop integration BuildRequires: desktop-file-utils # Runtime dependencies Requires: gtk3 Requires: webkit2gtk4.1 Requires: gstreamer1 Requires: gstreamer1-plugins-base Requires: gstreamer1-plugins-good # Bundled libraries - declare per Fedora guidelines Provides: bundled(wxwidgets) = 3.2.0 Provides: bundled(imgui) Provides: bundled(libnest2d) Provides: bundled(admesh) Provides: bundled(miniz) Provides: bundled(polyclipping) Provides: bundled(heatshrink) Provides: bundled(boost) Provides: bundled(cgal) Provides: bundled(openvdb) Provides: bundled(nlopt) Provides: bundled(cereal) %description Bambu Studio is a feature-rich 3D printing slicing software designed for Bambu Lab 3D printers and compatible with other 3D printer brands. It is a fork of PrusaSlicer with enhanced features including advanced support generation, multi-color printing, cloud integration, and project-based workflows with optimized slicing algorithms. %prep %autosetup -n BambuStudio -p1 %build # Set parallel build level based on available memory # Use CMAKE_BUILD_PARALLEL_LEVEL from environment or calculate if [ -z "$CMAKE_BUILD_PARALLEL_LEVEL" ]; then FREE_MEM_GB=$(free -g | grep '^Mem:' | awk '{print $7}') PARALLEL_LEVEL=$((FREE_MEM_GB / 3)) if [ $PARALLEL_LEVEL -lt 1 ]; then PARALLEL_LEVEL=1 fi if [ $PARALLEL_LEVEL -gt 8 ]; then PARALLEL_LEVEL=8 fi export CMAKE_BUILD_PARALLEL_LEVEL=$PARALLEL_LEVEL fi echo "Building with CMAKE_BUILD_PARALLEL_LEVEL=$CMAKE_BUILD_PARALLEL_LEVEL" # Stage 1: Build bundled dependencies mkdir -p deps/build cd deps/build %cmake \ -DDESTDIR=%{_builddir}/BambuStudio/deps_install \ -DCMAKE_BUILD_TYPE=Release \ -DDEP_WX_GTK3=ON \ .. %cmake_build # Install deps to temporary location %cmake_install cd ../.. # Stage 2: Build BambuStudio itself mkdir -p build cd build %cmake \ -DSLIC3R_STATIC=ON \ -DSLIC3R_GTK=3 \ -DBBL_RELEASE_TO_PUBLIC=1 \ -DSLIC3R_FHS=1 \ -DSLIC3R_BUILD_TESTS=0 \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=%{_builddir}/BambuStudio/deps_install/usr/local \ -DCMAKE_INSTALL_PREFIX=%{_prefix} \ .. %cmake_build %install cd build %cmake_install # Install desktop file mkdir -p %{buildroot}%{_datadir}/applications cat > %{buildroot}%{_datadir}/applications/bambu-studio.desktop << 'EOF' [Desktop Entry] Type=Application Name=Bambu Studio GenericName=3D Printing Slicer Comment=Feature-rich 3D printing slicing software Exec=bambu-studio %F Icon=bambu-studio Terminal=false Categories=Graphics;3DGraphics;Engineering; MimeType=model/stl;application/x-amf;application/x-3mf; Keywords=3D;Printing;Slicer;STL;AMF;3MF;BambuLab; EOF # Install icon mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps if [ -f %{_builddir}/BambuStudio/resources/images/BambuStudioLogo.png ]; then install -m 644 %{_builddir}/BambuStudio/resources/images/BambuStudioLogo.png \ %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/bambu-studio.png elif [ -f %{_builddir}/BambuStudio/resources/images/BambuStudio.png ]; then install -m 644 %{_builddir}/BambuStudio/resources/images/BambuStudio.png \ %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/bambu-studio.png fi %check desktop-file-validate %{buildroot}%{_datadir}/applications/bambu-studio.desktop %files %license LICENSE %doc README.md %{_bindir}/bambu-studio %{_datadir}/BambuStudio/ %{_datadir}/applications/bambu-studio.desktop %{_datadir}/icons/hicolor/*/apps/bambu-studio.png %changelog * Sun Feb 16 2025 linuxguy123 - 2.5.1-1 - Initial COPR package for Bambu Studio 2.5.1.52 - Built with static dependencies and GTK3 support for Fedora 42 and 43 - Excludes optional non-free networking plugin