From 29c9561a3f668b7bf05aeb7f424c0d934a0051e8 Mon Sep 17 00:00:00 2001 From: Josh Owen Date: Thu, 10 Sep 2026 22:36:08 -0700 Subject: [PATCH] Add bambustudio-bin, Bambu Studio, to the fast ring Bambu Studio is the official slicer for Bambu Lab printers. Linux builds are GitHub AppImages with a changing timestamp in the filename, so this tracks the AUR bambustudio-bin package that already resolves those assets, and puts it on the fast ring so stable users get updates with omarchy update. Two small Omarchy patches: skip stripping the extracted AppImage, and clear the AppImage ELF magic byte so --appimage-extract works in the build container. The desktop entry is labeled Bambu Studio and grouped under Graphics. Validation: bin/add-package + bin/sync-aur reapply the patches; AUR + .omarchy reproduces the checked-in tree. Built and launched the 2.8.2.61 AppImage on Omarchy 4.0.3 (x86_64); bambu-studio --help reports BambuStudio-02.08.02.61. AUR is currently 02.08.02.60; the next AUR bump will sync through. --- .../bambustudio-bin/.omarchy/package.json | 5 +++ .../.omarchy/patches/appimage-extract.patch | 17 +++++++ .../.omarchy/patches/desktop-entry.patch | 17 +++++++ pkgbuilds/bambustudio-bin/BambuStudio.desktop | 12 +++++ pkgbuilds/bambustudio-bin/PKGBUILD | 45 +++++++++++++++++++ pkgbuilds/bambustudio-bin/bambu-studio | 2 + 6 files changed, 98 insertions(+) create mode 100644 pkgbuilds/bambustudio-bin/.omarchy/package.json create mode 100644 pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch create mode 100644 pkgbuilds/bambustudio-bin/.omarchy/patches/desktop-entry.patch create mode 100644 pkgbuilds/bambustudio-bin/BambuStudio.desktop create mode 100644 pkgbuilds/bambustudio-bin/PKGBUILD create mode 100755 pkgbuilds/bambustudio-bin/bambu-studio diff --git a/pkgbuilds/bambustudio-bin/.omarchy/package.json b/pkgbuilds/bambustudio-bin/.omarchy/package.json new file mode 100644 index 0000000..d36a6a6 --- /dev/null +++ b/pkgbuilds/bambustudio-bin/.omarchy/package.json @@ -0,0 +1,5 @@ +{ + "source": "aur", + "release_ring": "fast", + "upstream_commit": "b962c12d14873f94669e0e256a444f957b1843cd" +} diff --git a/pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch b/pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch new file mode 100644 index 0000000..2f1bb39 --- /dev/null +++ b/pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch @@ -0,0 +1,17 @@ +--- a/PKGBUILD ++++ b/PKGBUILD +@@ -10,6 +10,7 @@ + conflicts=('bambustudio' 'bambustudio-git' 'squashfuse') + depends=('mesa' 'glu' 'cairo' 'gtk3' 'libsoup3' 'gstreamer' 'openvdb' 'wayland' 'wayland-protocols' 'libxkbcommon' 'gst-libav' 'webkit2gtk-4.1') + makedepends=('fuse2' 'patchelf') ++options=('!strip') + # Thanks so much for generating random image names Bambu, much appreciated, keeps you on your toes or something I guess... + source=("bambustudio-${pkgver}.AppImage::https://github.com/bambulab/BambuStudio/releases/download/v${pkgver}/BambuStudio_ubuntu24.04-v${pkgver/%/-20260814171356}.AppImage" + "BambuStudio.desktop" +@@ -21,4 +22,6 @@ + package() { + cd "$srcdir" + chmod +x ./bambustudio-${pkgver}.AppImage ++ # AppImage ELF interpreter can fail in build containers; clear the magic byte. ++ printf '\x00' | dd of="./bambustudio-${pkgver}.AppImage" bs=1 seek=8 conv=notrunc status=none + ./bambustudio-${pkgver}.AppImage --appimage-extract diff --git a/pkgbuilds/bambustudio-bin/.omarchy/patches/desktop-entry.patch b/pkgbuilds/bambustudio-bin/.omarchy/patches/desktop-entry.patch new file mode 100644 index 0000000..f16dc57 --- /dev/null +++ b/pkgbuilds/bambustudio-bin/.omarchy/patches/desktop-entry.patch @@ -0,0 +1,17 @@ +--- a/BambuStudio.desktop ++++ b/BambuStudio.desktop +@@ -1,7 +1,12 @@ + [Desktop Entry] +-Name=BambuStudio ++Name=Bambu Studio ++GenericName=3D Printing Software ++Comment=Slicer for Bambu Lab and other 3D printers + Exec=/usr/bin/bambu-studio %U + Icon=BambuStudio ++Terminal=false + Type=Application +-Categories=Utility; ++Categories=Graphics;3DGraphics;Engineering; + MimeType=x-scheme-handler/bambustudio;model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf; ++Keywords=3D;Printing;Slicer;gcode;stl;3mf ++StartupWMClass=bambu-studio diff --git a/pkgbuilds/bambustudio-bin/BambuStudio.desktop b/pkgbuilds/bambustudio-bin/BambuStudio.desktop new file mode 100644 index 0000000..5a8fd45 --- /dev/null +++ b/pkgbuilds/bambustudio-bin/BambuStudio.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Name=Bambu Studio +GenericName=3D Printing Software +Comment=Slicer for Bambu Lab and other 3D printers +Exec=/usr/bin/bambu-studio %U +Icon=BambuStudio +Terminal=false +Type=Application +Categories=Graphics;3DGraphics;Engineering; +MimeType=x-scheme-handler/bambustudio;model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf; +Keywords=3D;Printing;Slicer;gcode;stl;3mf +StartupWMClass=bambu-studio diff --git a/pkgbuilds/bambustudio-bin/PKGBUILD b/pkgbuilds/bambustudio-bin/PKGBUILD new file mode 100644 index 0000000..21eee3d --- /dev/null +++ b/pkgbuilds/bambustudio-bin/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: goll +# Contributor: George Woodall +pkgname=bambustudio-bin +pkgver=02.08.02.60 +pkgrel=1.1 +pkgdesc="PC Software for BambuLab's 3D printers" +arch=("x86_64") +url="https://github.com/bambulab/BambuStudio" +license=('AGPL3') +conflicts=('bambustudio' 'bambustudio-git' 'squashfuse') +depends=('mesa' 'glu' 'cairo' 'gtk3' 'libsoup3' 'gstreamer' 'openvdb' 'wayland' 'wayland-protocols' 'libxkbcommon' 'gst-libav' 'webkit2gtk-4.1') +makedepends=('fuse2' 'patchelf') +options=('!strip') +# Thanks so much for generating random image names Bambu, much appreciated, keeps you on your toes or something I guess... +source=("bambustudio-${pkgver}.AppImage::https://github.com/bambulab/BambuStudio/releases/download/v${pkgver}/BambuStudio_ubuntu24.04-v${pkgver/%/-20260814171356}.AppImage" + "BambuStudio.desktop" + "bambu-studio") +sha256sums=('b78d2527a20ee9fbcf70ee82138c3b3ca707aa9c6625881629db29627252acc3' + 'SKIP' + 'SKIP') + +package() { + cd "$srcdir" + chmod +x ./bambustudio-${pkgver}.AppImage + # AppImage ELF interpreter can fail in build containers; clear the magic byte. + printf '\x00' | dd of="./bambustudio-${pkgver}.AppImage" bs=1 seek=8 conv=notrunc status=none + ./bambustudio-${pkgver}.AppImage --appimage-extract + + cd squashfs-root + mkdir -p $pkgdir/opt/bambustudio-bin + cp -r ./usr "$pkgdir/" + cp -r ./* "$pkgdir/opt/bambustudio-bin/" + patchelf --remove-needed libOSMesa.so.8 "$pkgdir/opt/bambustudio-bin/bin/bambu-studio" + patchelf --replace-needed libwebkit2gtk-4.0.so.37 libwebkit2gtk-4.1.so.0 "$pkgdir/opt/bambustudio-bin/bin/bambu-studio" + patchelf --replace-needed libjavascriptcoregtk-4.0.so.18 libjavascriptcoregtk-4.1.so.0 "$pkgdir/opt/bambustudio-bin/bin/bambu-studio" + patchelf --replace-needed libsoup-2.4.so.1 libsoup-3.0.so.0 "$pkgdir/opt/bambustudio-bin/bin/bambu-studio" + + cd "$srcdir" + mkdir "$pkgdir/usr/bin/" + chmod +x ./bambu-studio + cp ./bambu-studio "$pkgdir/usr/bin/" + + mkdir "$pkgdir/usr/share/applications/" + cp ./BambuStudio.desktop "$pkgdir/usr/share/applications/BambuStudio.desktop" +} diff --git a/pkgbuilds/bambustudio-bin/bambu-studio b/pkgbuilds/bambustudio-bin/bambu-studio new file mode 100755 index 0000000..d1d3fb9 --- /dev/null +++ b/pkgbuilds/bambustudio-bin/bambu-studio @@ -0,0 +1,2 @@ +#!/bin/bash +exec "/opt/bambustudio-bin/AppRun" "$@"