From e2d1f4f3875e69b1af4de22a4ff69df741f0985c Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Sat, 19 Sep 2026 18:40:03 -0400 Subject: [PATCH] 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" }