@@ -15,7 +15,7 @@ PPA_REVISION="${PPA_REVISION:-1}"
1515SIGN_SOURCE=" ${SIGN_SOURCE:- 0} "
1616SOURCE_INCLUDE_MODE=" ${SOURCE_INCLUDE_MODE:- auto} "
1717REUSE_EXISTING_ORIG=" ${REUSE_EXISTING_ORIG:- 1} "
18- PPA_ORIG_BASE_URL=" ${PPA_ORIG_BASE_URL:- https :// ppa.launchpadcontent.net / daddyparodz / bambustudio / ubuntu / pool / main / b / bambustudio } "
18+ PPA_ORIG_BASE_URL=" ${PPA_ORIG_BASE_URL:- } "
1919MAINTAINER_NAME=" ${MAINTAINER_NAME:- daddyparodz} "
2020MAINTAINER_EMAIL=" ${MAINTAINER_EMAIL:- 45983094+daddyparodz@ users.noreply.github.com} "
2121
@@ -116,15 +116,34 @@ else
116116 CHANGELOG_DATE=" $( date -Ru -d " $PUBLISHED_AT " ) "
117117fi
118118
119+ SOURCE_PACKAGE_NAME=" bambustudio"
120+ BINARY_PACKAGE_NAME=" bambustudio"
121+ INSTALL_DIR=" /opt/bambustudio"
122+ WRAPPER_CMD=" bambustudio"
123+ DESKTOP_FILE=" bambustudio.desktop"
124+ DESKTOP_NAME=" BambuStudio"
125+ DESKTOP_COMMENT=" A cutting-edge, feature-rich slicing software."
126+ if [[ " $CHANNEL " == " beta" ]]; then
127+ SOURCE_PACKAGE_NAME=" bambustudio-beta"
128+ BINARY_PACKAGE_NAME=" bambustudio-beta"
129+ INSTALL_DIR=" /opt/bambustudio-beta"
130+ WRAPPER_CMD=" bambustudio-beta"
131+ DESKTOP_FILE=" bambustudio-beta.desktop"
132+ DESKTOP_NAME=" BambuStudio Beta"
133+ DESKTOP_COMMENT=" Bambu Studio beta channel repackaged from the official Linux AppImage."
134+ fi
135+
119136prepare_source_tree () {
120137 local series=" $1 "
121- local asset_url asset_name workspace source_dir package_version ubuntu_series_version series_upstream_version launcher_path desktop_path icon_root orig_tarball orig_url debuild_source_args selected_include_mode
138+ local asset_url asset_name workspace source_dir package_version ubuntu_series_version series_upstream_version
139+ local launcher_path desktop_path icon_root orig_tarball orig_url debuild_source_args selected_include_mode
140+ local source_base_url
122141
123142 ubuntu_series_version=" $( series_version_suffix " $series " ) "
124143 series_upstream_version=" ${VERSION} +${series} "
125144 package_version=" ${series_upstream_version} -0ppa${PPA_REVISION} ~${ubuntu_series_version} .1"
126145 workspace=" $BUILD_ROOT /$series "
127- source_dir=" $workspace /bambustudio -${series_upstream_version} "
146+ source_dir=" $workspace /${SOURCE_PACKAGE_NAME} -${series_upstream_version} "
128147 mkdir -p " $workspace "
129148
130149 selected_include_mode=" $SOURCE_INCLUDE_MODE "
@@ -151,10 +170,15 @@ prepare_source_tree() {
151170 ;;
152171 esac
153172
154- orig_tarball=" $workspace /bambustudio_${series_upstream_version} .orig.tar.xz"
173+ source_base_url=" $PPA_ORIG_BASE_URL "
174+ if [[ -z " $source_base_url " ]]; then
175+ source_base_url=" https://ppa.launchpadcontent.net/daddyparodz/bambustudio/ubuntu/pool/main/${SOURCE_PACKAGE_NAME: 0: 1} /${SOURCE_PACKAGE_NAME} "
176+ fi
177+
178+ orig_tarball=" $workspace /${SOURCE_PACKAGE_NAME} _${series_upstream_version} .orig.tar.xz"
155179 rm -f " $orig_tarball "
156180 if [[ " $selected_include_mode " == " exclude-orig" && " $REUSE_EXISTING_ORIG " == " 1" ]]; then
157- orig_url=" ${PPA_ORIG_BASE_URL} /bambustudio_ ${series_upstream_version} .orig.tar.xz"
181+ orig_url=" ${source_base_url} / ${SOURCE_PACKAGE_NAME} _ ${series_upstream_version} .orig.tar.xz"
158182 if curl -fsSL " $orig_url " -o " $orig_tarball " ; then
159183 echo " Reusing existing orig tarball from PPA: $orig_url "
160184 tar -C " $workspace " -xJf " $orig_tarball "
@@ -174,7 +198,14 @@ prepare_source_tree() {
174198 local appimage_size appimage_sha256
175199 appimage_size=" $( stat -c ' %s' " $source_dir /BambuStudio.AppImage" ) "
176200 appimage_sha256=" $( sha256sum " $source_dir /BambuStudio.AppImage" | awk ' {print $1}' ) "
201+ echo " Channel: ${CHANNEL} "
202+ echo " Source package: ${SOURCE_PACKAGE_NAME} "
203+ echo " Binary package: ${BINARY_PACKAGE_NAME} "
177204 echo " Series: ${series} "
205+ echo " Install path: ${INSTALL_DIR} /BambuStudio.AppImage"
206+ echo " Wrapper path: /usr/bin/${WRAPPER_CMD} "
207+ echo " Desktop file path: /usr/share/applications/${DESKTOP_FILE} "
208+ echo " Upstream tag: ${TAG} "
178209 echo " Asset URL: ${asset_url} "
179210 echo " Asset size (bytes): ${appimage_size} "
180211 echo " Asset sha256: ${appimage_sha256} "
@@ -188,6 +219,34 @@ prepare_source_tree() {
188219 )
189220
190221 cp -a " $REPO_ROOT /packaging/debian" " $source_dir /debian"
222+ sed -i \
223+ -e " s/@SOURCE_PACKAGE_NAME@/${SOURCE_PACKAGE_NAME} /g" \
224+ -e " s/@BINARY_PACKAGE_NAME@/${BINARY_PACKAGE_NAME} /g" \
225+ " $source_dir /debian/control"
226+ if [[ -f " $source_dir /debian/source/lintian-overrides" ]]; then
227+ sed -i " s/^bambustudio source:/${SOURCE_PACKAGE_NAME} source:/g" " $source_dir /debian/source/lintian-overrides"
228+ fi
229+
230+ rm -f " $source_dir /debian/bambustudio.install"
231+ cat > " $source_dir /debian/${BINARY_PACKAGE_NAME} .install" << EOF
232+ BambuStudio.AppImage ${INSTALL_DIR} /
233+ ${WRAPPER_CMD} usr/bin/
234+ ${DESKTOP_FILE} usr/share/applications/
235+ BambuStudio.png usr/share/pixmaps/
236+ icons/32x32/apps/BambuStudio.png usr/share/icons/hicolor/32x32/apps/
237+ icons/128x128/apps/BambuStudio.png usr/share/icons/hicolor/128x128/apps/
238+ icons/192x192/apps/BambuStudio.png usr/share/icons/hicolor/192x192/apps/
239+ EOF
240+
241+ cat > " $source_dir /debian/tests/smoke" << EOF
242+ #!/bin/sh
243+ set -eu
244+
245+ test -x ${INSTALL_DIR} /BambuStudio.AppImage
246+ test -x /usr/bin/${WRAPPER_CMD}
247+ test -f /usr/share/applications/${DESKTOP_FILE}
248+ EOF
249+ chmod 0755 " $source_dir /debian/tests/smoke"
191250
192251 if [[ -f " $source_dir /squashfs-root/BambuStudio.png" ]]; then
193252 cp " $source_dir /squashfs-root/BambuStudio.png" " $source_dir /BambuStudio.png"
@@ -209,32 +268,36 @@ prepare_source_tree() {
209268 fi
210269 done
211270
212- launcher_path=" $source_dir /bambustudio "
213- cat > " $launcher_path " << 'EOF '
271+ launcher_path=" $source_dir /${WRAPPER_CMD} "
272+ cat > " $launcher_path " << 'EOF '
214273#!/usr/bin/env bash
215274set -euo pipefail
216275
217- APPIMAGE=/opt/bambustudio /BambuStudio.AppImage
276+ APPIMAGE=@INSTALL_DIR@ /BambuStudio.AppImage
218277export SSL_CERT_FILE="${SSL_CERT_FILE:-/etc/ssl/certs/ca-certificates.crt}"
219278export SSL_CERT_DIR="${SSL_CERT_DIR:-/etc/ssl/certs}"
220279
221280if command -v xdg-mime >/dev/null 2>&1; then
222- if [[ "$(xdg-mime query default x-scheme-handler/bambustudioopen 2>/dev/null || true)" != "bambustudio.desktop " ]]; then
223- xdg-mime default bambustudio.desktop x-scheme-handler/bambustudioopen x-scheme-handler/bambustudio >/dev/null 2>&1 || true
281+ if [[ "$(xdg-mime query default x-scheme-handler/bambustudioopen 2>/dev/null || true)" != "@DESKTOP_FILE@ " ]]; then
282+ xdg-mime default @DESKTOP_FILE@ x-scheme-handler/bambustudioopen x-scheme-handler/bambustudio >/dev/null 2>&1 || true
224283 fi
225284fi
226285
227286exec "$APPIMAGE" "$@"
228287EOF
229- chmod 0755 " $launcher_path "
230-
231- desktop_path=" $source_dir /bambustudio.desktop"
232- cat > " $desktop_path " << EOF
288+ sed -i \
289+ -e " s|@INSTALL_DIR@|${INSTALL_DIR} |g" \
290+ -e " s|@DESKTOP_FILE@|${DESKTOP_FILE} |g" \
291+ " $launcher_path "
292+ chmod 0755 " $launcher_path "
293+
294+ desktop_path=" $source_dir /${DESKTOP_FILE} "
295+ cat > " $desktop_path " << EOF
233296[Desktop Entry]
234- Name=BambuStudio
297+ Name=${DESKTOP_NAME}
235298GenericName=3D Printing Software
236- Comment=A cutting-edge, feature-rich slicing software.
237- Exec=/usr/bin/bambustudio %U
299+ Comment=${DESKTOP_COMMENT}
300+ Exec=/usr/bin/${WRAPPER_CMD} %U
238301Icon=BambuStudio
239302Terminal=false
240303Type=Application
@@ -247,7 +310,7 @@ X-AppImage-Version=${VERSION}
247310EOF
248311
249312 cat > " $source_dir /debian/changelog" << EOF
250- bambustudio (${package_version} ) ${series} ; urgency=medium
313+ ${SOURCE_PACKAGE_NAME} (${package_version} ) ${series} ; urgency=medium
251314
252315 * Repackage upstream release ${TAG} .
253316 * Bundle the official ${asset_name} AppImage for Ubuntu ${series} .
@@ -257,12 +320,38 @@ EOF
257320
258321 rm -rf " $source_dir /squashfs-root"
259322 rm -f " $orig_tarball "
260- tar --exclude=' ./debian' -C " $workspace " -cJf " $orig_tarball " " bambustudio -${series_upstream_version} "
323+ tar --exclude=' ./debian' -C " $workspace " -cJf " $orig_tarball " " ${SOURCE_PACKAGE_NAME} -${series_upstream_version} "
261324 else
262325 rm -rf " $source_dir /debian"
263326 cp -a " $REPO_ROOT /packaging/debian" " $source_dir /debian"
327+ sed -i \
328+ -e " s/@SOURCE_PACKAGE_NAME@/${SOURCE_PACKAGE_NAME} /g" \
329+ -e " s/@BINARY_PACKAGE_NAME@/${BINARY_PACKAGE_NAME} /g" \
330+ " $source_dir /debian/control"
331+ if [[ -f " $source_dir /debian/source/lintian-overrides" ]]; then
332+ sed -i " s/^bambustudio source:/${SOURCE_PACKAGE_NAME} source:/g" " $source_dir /debian/source/lintian-overrides"
333+ fi
334+ rm -f " $source_dir /debian/bambustudio.install"
335+ cat > " $source_dir /debian/${BINARY_PACKAGE_NAME} .install" << EOF
336+ BambuStudio.AppImage ${INSTALL_DIR} /
337+ ${WRAPPER_CMD} usr/bin/
338+ ${DESKTOP_FILE} usr/share/applications/
339+ BambuStudio.png usr/share/pixmaps/
340+ icons/32x32/apps/BambuStudio.png usr/share/icons/hicolor/32x32/apps/
341+ icons/128x128/apps/BambuStudio.png usr/share/icons/hicolor/128x128/apps/
342+ icons/192x192/apps/BambuStudio.png usr/share/icons/hicolor/192x192/apps/
343+ EOF
344+ cat > " $source_dir /debian/tests/smoke" << EOF
345+ #!/bin/sh
346+ set -eu
347+
348+ test -x ${INSTALL_DIR} /BambuStudio.AppImage
349+ test -x /usr/bin/${WRAPPER_CMD}
350+ test -f /usr/share/applications/${DESKTOP_FILE}
351+ EOF
352+ chmod 0755 " $source_dir /debian/tests/smoke"
264353 cat > " $source_dir /debian/changelog" << EOF
265- bambustudio (${package_version} ) ${series} ; urgency=medium
354+ ${SOURCE_PACKAGE_NAME} (${package_version} ) ${series} ; urgency=medium
266355
267356 * Rebuild Debian packaging revision for ${TAG} .
268357
0 commit comments