[SailfishOS] Move to SFDK
In part towards &5, in part just a global clean-up (#183). This also closes #24 (closed), #79 (closed), #245 (closed) because it makes QtTokioAbstractEventDispatcher completely irrelevant.
TODO
-
Cargo vendoring for better dependency cachinglooks like mb2 handles that very well. -
Reintroduce share plugin (maybe #351 (closed)) -
Reintroduce custom sqlcipher (currently dynlinking to system sqlcipher) -
rerun detection doesn't seem stable; eg. what if the OUT_DIR changes? Means you can't always find the sqlcipher.a. Maybe mv the output into another directory, like the target dir itself.
-
-
Fix CI -
Reintroduce LTO (was set using RUSTFLAGS in CI)
-
-
Get qmetaobject-rs a prelude: https://github.com/woboq/qmetaobject-rs/issues/83 -> https://github.com/woboq/qmetaobject-rs/pull/144 -
Invert harbour
feature flag, should be set from within rpm and as an RPM define -
Document RPM building of rustc 1.51+ -
Throw a bunch of merge requests at Jolla
-
-
Document building of WF - ~~Including this Sailfish Platform SDK bug and workaround: https://forum.sailfishos.org/t/4-1-0-23-cannot-install-packages-into-target/6261 ~~ No need, SDK 4.1.0.24 works as intended.
-
Remove duplicate item listings in RPM (warning: File listed twice: /usr/share/harbour-whisperfish/qml) -
Get rid of the two unused imports. -
Move sailfishapp
-includes to sailo-rs build script. After that, we can close #25 (closed) , I think. -
Find out why sailors
gets rebuilt every time. -
Test with VBox-based sfdk -
Make sure everything is again in the RPM:
-[package.metadata.rpm]
-# DOES NOT get overwritten through `cargo rpm build --target xxx`,
-# means we can *lie* to RPM for issue #24.
-target_architecture = "armv7hl"
-
-[package.metadata.rpm.cargo]
-buildflags = ["--release"]
-# Gets overwritten through `cargo rpm build --target xxx`
-target = "armv7-unknown-linux-gnueabihf"
-
-[package.metadata.rpm.targets]
-harbour-whisperfish = { path = "/usr/bin/harbour-whisperfish" }
-whisperfish-migration-dry-run = { path = "/usr/bin/whisperfish-migration-dry-run" }
-
-[package.metadata.rpm.files]
-"../harbour-whisperfish.desktop" = { path = "/usr/share/applications/harbour-whisperfish.desktop" }
-"../harbour-whisperfish.privileges" = { path = "/usr/share/mapplauncherd/privileges.d/harbour-whisperfish.privileges" }
-"../harbour-whisperfish-message.conf" = { path = "/usr/share/lipstick/notificationcategories/harbour-whisperfish-message.conf" }
-"../icons/86x86/harbour-whisperfish.png" = { path = "/usr/share/icons/hicolor/86x86/apps/harbour-whisperfish.png" }
-"tmp_feature_files/systemd/" = { path = "/usr/lib/systemd/user/" }
-"tmp_feature_files/transferplugin/" = { path = "/usr/lib/nemo-transferengine/plugins/" }
-"tmp_feature_files/transferui/" = { path = "/usr/share/nemo-transferengine/plugins/" }
-"tmp_feature_files/dbus/" = { path = "/usr/share/dbus-1/services/" }
-
-
-"../qml/" = { path = "/usr/share/harbour-whisperfish/qml/" }
-"../icons/" = { path = "/usr/share/harbour-whisperfish/icons/" }
-"../translations/" = { path = "/usr/share/harbour-whisperfish/translations" }
Furthermore, merging this means we're building against a 4.x SDK, which means we technically "fix" #382 (closed): 4.3 targets will start working, but we break 3.4 compatibility. A follow-up merge request will introduce a separation of 3.x and 4.x targets.
Edited by Ruben De Smet