-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
CPack: Refactor AppImage and Apple DMG Generation #7252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
FYI, CMake homepage lists the official PPA and pip package as alternative installation methods. |
|
@tresf I could update the Linux image with a newer CMake using the official PPA if you want. That might be easiest and also won't impact build times |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
can we use the PPA for mingw ci image too? |
I'll try to do it sometime today
Yes, I think so, though I don't think it will be needed for this PR |
Actually, we can justify it here since bad79a8. |
|
I've marked this ready for review because I think it's in pretty good shape. (artifacts should start generating once cmake is updated). ARM64.AppImage.mp4 |
- Refactor BashCompletion.cmake - Add initial support for Linux AppImages (untested) - Add debug flags for cpack
Yeah same. I noticed that Edit: Still doesn't work. 😢 |
|
I've reverted all trial-and-error attempts at fixing the AppImage icons generated from CI.
One difference I noticed is that the GitHub runners have SELinux enabled, so I may experiment with that next, but I'm running out of steam on fixing this issue. |
I've decided to reach out to the Linux Mint community to see if they can shed some light on where to look next. https://forums.linuxmint.com/viewtopic.php?t=439346. |
|
By shimming a custom script into [Thumbnailer Entry]
TryExec=xapp-appimage-thumbnailer
# Exec=xapp-appimage-thumbnailer -i %i -o %o -s %s
Exec=script -qc 'echo "xapp-appimage-thumbnailer -i %i -o %o -s %s"' /tmp/thumbnailer
MimeType=application/vnd.appimage;touch /tmp/thumbnailer && tail -f /tmp/thumbnailerWhich shows something like this: xapp-appimage-thumbnailer -i /home/owner/Downloads/lmms-1.2.2-linux-x86_64.AppImage
-o /tmp/.gnome_desktop_thumbnail.6Z6Q02
-s 256I can reliably get an error for some of our AppImages, I'm not sure how I missed this before: - xapp-thumbnails PIL load error: cannot identify image file '/dev/shm/tmpnhjrczzb/out/.DirIcon'In lieu of this new information, I'm doing the following via 8e7f554:
However, this isn't conclusive. When testing the above thumbnail shim, I've noticed for AppImages that have a clock/hourglass icon, the thumbnailer never gets called. This leads me to believe that a Nemo background service is hanging before the thumbnail service starts. This is further supported by the following statement from @messmerd on Discord:
Will continue testing once the CI is done building. |
|
I found a workaround: touch ~/Downloads/*.AppImageClick to show video...MIDAS_TOUCH_QBERT_SWEAR_WORDS.mov |
|
Bug filed upstream linuxmint/nemo#3522 |
messmerd
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. No issues discovered during testing except the aforementioned VST issue with the AppImage CI builds.
|
Props to everyone who worked on this! I can see the thumbnail issue was very frustrating |
* SharedMemory: Make key optional, shorter on macOS * Add getters for shared memory size * macOS: Fix linking regression for RemoteZynAddSubFx introduced with #7252 --------- Co-authored-by: Dalton Messmer <[email protected]>
* CPack: Refactor AppImage and Apple DMG Generation * Switch from linuxdeployqt to linuxdelpoy * Add ARM64 AppImage support * Add support for `.run` installers using `makeself`, an alternative to AppImage * Refactor BashCompletion.cmake * Enable CPack debugging via `WANT_DEBUG_CPACK` * Add `download_binary`, `create_symlink` macros * Qt6: Fix @rpath bug on macOS * Detect and bundle LV2 UI Suil modules (Related LMMS#7201) * Allow remote plugins to honor `LMMS_PLUGIN_DIR` * Add .github/workflows/deps-ubuntu-24.04-gcc.txt * Fix waveforms FileDialog Co-authored-by: Dalton Messmer <[email protected]>
…S#7681) * SharedMemory: Make key optional, shorter on macOS * Add getters for shared memory size * macOS: Fix linking regression for RemoteZynAddSubFx introduced with LMMS#7252 --------- Co-authored-by: Dalton Messmer <[email protected]>
…S#7681) * SharedMemory: Make key optional, shorter on macOS * Add getters for shared memory size * macOS: Fix linking regression for RemoteZynAddSubFx introduced with LMMS#7252 --------- Co-authored-by: Dalton Messmer <[email protected]>


Features:
make packageWANT_DEBUG_CPACKflag to easily show detailed console messages about packagingDeveloper options ----------------------------------------- * Debug FP exceptions : Disabled * Debug using AddressSanitizer : Disabled * Debug using ThreadSanitizer : Disabled * Debug using MemorySanitizer : Disabled * Debug using UBSanitizer : Disabled + * Debug packaging commands : EnabledTGZbehavior through a hidden flag,WANT_CPACK_TARBALL. Does anyone use this?CPACK_TOOLparameter to switch between.AppImage(default) and.run(experimental)TODO:
waveformsfolder when the+button is pressedrawwavesis missinginstall_apple.shscript to CMake.It's called
MacDeployQt.cmakenow.package_linux.shscript to CmakeIt's called
LinuxDeploy.cmakenow.BUGS:
WANT_DEBUG_CPACKis incorrectly toggled in CI. https://github.com/LMMS/lmms/actions/runs/9131345271/job/25110338288. Closed via 82a3aa6.STRETCH GOALS:
linuxdeployqttolinuxdeployExamples:
linuxdeployqt(in favor oflinuxdeploy)Background:
Click to expand
make installto be run prior to making packages. This PR is a proposal to remove that by switching toCPack.make packagenow, just like Windows doesCPACK_GENERATORofDragNDropBundlewhich will create a DMG without the need for node'sappdmgpackage (still requiresmacdeployqt)CPACK_GENERATORof "External", which will use custom CMake commands to replacepackage_linux.sh(still requireslinuxdeployqt).