From 29c9561a3f668b7bf05aeb7f424c0d934a0051e8 Mon Sep 17 00:00:00 2001 From: Josh Owen Date: Thu, 10 Sep 2026 22:36:08 -0700 Subject: [PATCH 1/2] 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" "$@" From e2d1f4f3875e69b1af4de22a4ff69df741f0985c Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Sat, 19 Sep 2026 18:40:03 -0400 Subject: [PATCH 2/2] Fix Bambu Studio packaging and track upstream releases --- .../bambustudio-bin/.omarchy/package.json | 16 ++++- .../.omarchy/patches/appimage-extract.patch | 17 ----- .../.omarchy/patches/desktop-entry.patch | 17 ----- pkgbuilds/bambustudio-bin/BambuStudio.desktop | 4 +- pkgbuilds/bambustudio-bin/PKGBUILD | 67 ++++++++++--------- 5 files changed, 51 insertions(+), 70 deletions(-) delete mode 100644 pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch delete mode 100644 pkgbuilds/bambustudio-bin/.omarchy/patches/desktop-entry.patch diff --git a/pkgbuilds/bambustudio-bin/.omarchy/package.json b/pkgbuilds/bambustudio-bin/.omarchy/package.json index d36a6a6..ffa5b62 100644 --- a/pkgbuilds/bambustudio-bin/.omarchy/package.json +++ b/pkgbuilds/bambustudio-bin/.omarchy/package.json @@ -1,5 +1,17 @@ { - "source": "aur", + "source": "local", "release_ring": "fast", - "upstream_commit": "b962c12d14873f94669e0e256a444f957b1843cd" + "origin": { + "aur": "bambustudio-bin", + "commit": "b962c12d14873f94669e0e256a444f957b1843cd" + }, + "upstream": { + "watch": { + "regex": "https://api.github.com/repos/bambulab/BambuStudio/releases/latest", + "pattern": "\"name\"\\s*:\\s*\"BambuStudio_ubuntu24\\.04-v(?P[0-9]+(?:\\.[0-9]+)*)-(?P[0-9]+)\\.AppImage\"", + "variables": { + "_build": "{build}" + } + } + } } diff --git a/pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch b/pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch deleted file mode 100644 index 2f1bb39..0000000 --- a/pkgbuilds/bambustudio-bin/.omarchy/patches/appimage-extract.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- 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 deleted file mode 100644 index f16dc57..0000000 --- a/pkgbuilds/bambustudio-bin/.omarchy/patches/desktop-entry.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- 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 index 5a8fd45..74ab062 100644 --- a/pkgbuilds/bambustudio-bin/BambuStudio.desktop +++ b/pkgbuilds/bambustudio-bin/BambuStudio.desktop @@ -7,6 +7,6 @@ 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 +MimeType=x-scheme-handler/bambustudio;x-scheme-handler/bambustudioopen;model/stl;model/3mf;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 index 21eee3d..f1a7c64 100644 --- a/pkgbuilds/bambustudio-bin/PKGBUILD +++ b/pkgbuilds/bambustudio-bin/PKGBUILD @@ -1,45 +1,48 @@ # Maintainer: goll # Contributor: George Woodall pkgname=bambustudio-bin -pkgver=02.08.02.60 -pkgrel=1.1 +pkgver=02.08.02.61 +pkgrel=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" +license=('AGPL-3.0-only') +conflicts=('bambustudio' 'bambustudio-git') +depends=('cairo' 'dbus' 'fontconfig' 'gcc-libs' 'glib2' 'glibc' + 'gst-libav' 'gst-plugins-base-libs' 'gstreamer' 'gtk3' 'libglvnd' + 'libx11' 'mesa' 'pango' 'wayland' 'webkit2gtk-4.1') +makedepends=('7zip') +options=('!strip' '!debug') +# The upstream watch updates the timestamp together with pkgver. +_build=20260820225108 +source=("bambustudio-${pkgver}.AppImage::https://github.com/bambulab/BambuStudio/releases/download/v${pkgver}/BambuStudio_ubuntu24.04-v${pkgver}-${_build}.AppImage" "BambuStudio.desktop" "bambu-studio") -sha256sums=('b78d2527a20ee9fbcf70ee82138c3b3ca707aa9c6625881629db29627252acc3' - 'SKIP' - 'SKIP') +noextract=("bambustudio-${pkgver}.AppImage") +sha256sums=( + 'd501b103fac5424513ec0e8d6bc145fb30719de2c7d94d7320d723740c81a7fd' + 'f10718a8b201cad64800746fe8167ccc032c545d05f7ad8caa99eb5fb975f2a1' + 'a3a5c8f6a8b287e42b93957e9602621923c766e0b6a3f10c14eca10b023b15f2' +) + +prepare() { + # Read the embedded SquashFS without executing or modifying the AppImage. + rm -rf "$srcdir/squashfs-root" + 7z x "$srcdir/bambustudio-${pkgver}.AppImage" -o"$srcdir/squashfs-root" >/dev/null +} 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 "$srcdir/squashfs-root" + install -Dm755 AppRun "$pkgdir/opt/$pkgname/AppRun" + cp -a bin resources "$pkgdir/opt/$pkgname/" - 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" + local icon size + for icon in usr/share/icons/hicolor/*/apps/BambuStudio.png; do + size="${icon#usr/share/icons/hicolor/}" + install -Dm644 "$icon" "$pkgdir/usr/share/icons/hicolor/$size" + done - 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" + install -Dm755 "$srcdir/bambu-studio" "$pkgdir/usr/bin/bambu-studio" + install -Dm644 "$srcdir/BambuStudio.desktop" \ + "$pkgdir/usr/share/applications/BambuStudio.desktop" }