Skip to content

[SailfishOS] Move to SFDK

Ruben De Smet requested to merge sfdk into master

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 caching looks 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
  • 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

Merge request reports