We have moved to a new Sailfish OS Forum. Please start new discussions there.
27

Status of allowed libraries in Harbour

asked 2019-09-19 12:27:51 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-09-19 12:27:51 +0300

This is a recurrent topic, and there are already several questions in TJC about the status of this or that API / library in harbour. Some libraries are still not allowed in Harbour for valid reasons of stability (in term of API) or support. Since all of them are open source, when some implementation is fragile or need to be reworked, it can be the task of the community to do so.

The aim of this wiki is to centralize a list of desired libraries / APIs from the community point of view that should be allowed in harbour. There can be an exchange then between Harbour keepers and developpers on identifying blocking parts and how, per library, to improve the situation.

Use the answers to list libraries, and make the answers as wiki so they can be detailed further on why they are desidered, what is blocking for Harbour integration and what task can be done to raise the blockers.

edit retag flag offensive close delete

Comments

1

I would like to thanks Jolla employees who take this initiative seriously enough to bring some answers and involve the community in the process.

Damien Caliste ( 2019-10-03 17:11:33 +0300 )edit

9 Answers

Sort by » oldest newest most voted
21

answered 2019-09-19 12:47:21 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-10-03 17:08:39 +0300

TransferEngine

This library is used to allow applications to share data with each other and to allow data to be shared with your application. It is used by applications like Gallery to share content with other applications.

2019-10-03: answer from Jolla: "The TransferEngine is a larger topic, and our plans for that are not yet in such shape that we could ask for community contributions."

edit flag offensive delete publish link more
20

answered 2019-09-22 20:59:57 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-10-03 17:39:41 +0300

pat_o gravatar image

QtLocation

QtLocation woud give a possibility to add map content to applications easily. I have been waiting this for years...

2019-10-03, answer from Jolla: "I don't think it makes sense for us to ask for community to help at the moment. Both QtLocation and QtBluetooth are really feasible only after the Qt upgrade.". Let's raise this library again after the Qt upgrade next year.

edit flag offensive delete publish link more
16

answered 2019-09-19 12:43:08 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-10-03 17:40:02 +0300

pat_o gravatar image

QtBluetooth

(Original TJC post and existing issue in Github)

To allow Bluetooth apps in Harbour using Qt. In the Github issue, @jpetrell is giving explanation for the reason not to allow this library as is.

2019-10-03, answer from Jolla: "I don't think it makes sense for us to ask for community to help at the moment. Both QtLocation and QtBluetooth are really feasible only after the Qt upgrade.". Let's raise this library again after the Qt upgrade next year.

edit flag offensive delete publish link more
15

answered 2019-09-19 12:30:43 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-10-03 17:15:06 +0300

MPRIS API

(original TJC request)

This library (hosted in SailfishOS git) is used add controls on the lock screen from a media player, like a podcast client for instance.

2019-10-03, answer from Jolla: "For MPRIS API, I assume this means org.nemomobile.mpris. The biggest obstacle standing between us and allowing it in harbour is the lack of documentation." and "One of the issues raised in the TJC discussion about Mpris is that it's a bit flaky when there are multiple clients using it.". Both issues are open for contributions and would help to allow inclusion in Harbour rules.

edit flag offensive delete publish link more

Comments

This is pretty buggy with multiple clients, so some cleanup is needed. :(

attah ( 2019-09-23 23:43:06 +0300 )edit

I wonder if maybe bugginess isn't a good enough reason in itself not to support the API. As long as there's some certainty that the bugginess is due to the implementation, rather than the API, then the bugs can be fixed in the background over time (with the additional use feeding into useful bug reports and fixes).

flypig ( 2019-09-25 13:45:37 +0300 )edit

In general I agree with that reasoning, but as there is basically only one app using it "legally", that can be viewed as a workaround of the bugginess by some. Opening up as it is now will create a somewhat broken experience of the os... unfortunately.

attah ( 2019-09-25 13:54:13 +0300 )edit
3

After Jolla's answer, let's work on this. Personnaly, I'm not using it, so I cannot do a good job at discussing the concurrency issue or be helpful for the documentation.

Developpers using this library and willing to have it allowed in Harbour, feel free to improve the README.md for the documentation, or propose a scheme to improve the concurrency issue. If you have not yet contribute to SailfishOS git, feel free to ask guidance if necessary, here or on IRC.

Damien Caliste ( 2019-10-03 17:17:59 +0300 )edit

To be completely fair, MPRIS isn't bullet-proof on the desktop either, and neither are other DBUS-based APIs on SFOS. I might have been a bit off the mark when blaming this particular API, and not DBUS in general.

attah ( 2019-10-03 21:25:40 +0300 )edit
15

answered 2019-09-22 22:01:37 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-09-22 22:02:15 +0300

ApB gravatar image

libsystemd

Issue on github

Will allow for Native Mapping apps to come to the store. This is needed because the native Here app is more or less abandoned.

edit flag offensive delete publish link more
10

answered 2019-09-23 09:29:48 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-09-23 09:30:15 +0300

jobe-m gravatar image

libgcrypt 1.8+

Currently version 1.5 of libgcrypt is allowed in harbour. As for ownKeepass to support the database backend of KeepassXC a newer version is needed. Currently ownKeepass brings the new version along within the rpm package in harbour. That would not be needed if the version in the jolla repos would be updated.

edit flag offensive delete publish link more

Comments

Seen today that ligcrypt is under the process of being upgraded: https://git.sailfishos.org/mer-core/libgcrypt/merge_requests/11

I guess allowed version in harbour will follow.

Damien Caliste ( 2019-09-24 17:18:48 +0300 )edit

This is a great sign :) Thanks for the hint!

jobe-m ( 2019-09-24 17:24:33 +0300 )edit
7

answered 2019-09-22 17:15:43 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-09-22 17:15:43 +0300

DConf

It's a library to store key/value pairs for application settings. It is currently the backend library for Nemo.Configuration middleware. So it is widely used on the platform. Porting some existing applications based on DConf would be easier if DConf is allowed in Harbour.

edit flag offensive delete publish link more

Comments

Is the main use-case porting here? For fresh code it would probably make more sense to use nemo.configuration.

flypig ( 2019-10-03 12:00:50 +0300 )edit

Nemo.Configuration middleware is a great entry for QML applications, I agree. I guess that DConf itself would be restricted to porting existing code without rewriting QML counterparts, or for daemons (which are not allowed in harbour anyway)…

Damien Caliste ( 2019-10-03 17:20:24 +0300 )edit
6

answered 2019-09-23 23:42:08 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-09-23 23:43:13 +0300

attah gravatar image

Sailfish.Media

Allows an app to listen to and handle keys on a headset (play, pause etc). Similar to MPRIS in purpose, but for other types of controls.

edit flag offensive delete publish link more

Comments

Which controls does this cover that MPRIS doesn't? That's looking more likely to get approved.

Andy Branson ( 2019-10-03 12:05:39 +0300 )edit

Wired, and probably wired headsets... It would be neat if that and lock screen controls could use the same api...

attah ( 2019-10-03 13:24:06 +0300 )edit
2

For Bluetooth ones that's likely to be solved once we get something solid with the Bluez mpris-proxy (see https://together.jolla.com/question/174156/bug-bluetooth-media-control-with-android-apps-and-native-apps/). I'm surprised that wired headsets don't end up in MPRIS already - that should get fixed.

Andy Branson ( 2019-10-03 15:29:06 +0300 )edit

Good job at reading my broken comment; probably is indeed for wireless/bluetooth. I Double-checked wired, and can confirm this is still the API used.

attah ( 2019-10-03 21:22:25 +0300 )edit
3

answered 2019-09-22 17:12:43 +0300

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

updated 2019-09-22 17:12:52 +0300

Cairo

Cairo is a 2D rendering engine, mainly used by Gtk-related programs, but not only. It is a very stable library nowadays and would help to port existing programs based on this library.

edit flag offensive delete publish link more

Comments

Really? Cairo? With OpenGL being de-facto standard?

tortoisedoc ( 2019-09-23 07:32:23 +0300 )edit

Maybe it's because I'm a noob in OpenGL, but I really prefer the Cairo API for chart drawing for instance than OpenGL one. Besides, I'm not advocating to replace OpenGL drawing primitive with Cairo ones, just that Cairo is used already in various places outside SailfishOS and allowing it would save the pain to package it in apps with its dependencies.

Damien Caliste ( 2019-09-23 10:21:05 +0300 )edit

@Damien Caliste

What kind of apps do you have in mind?? Just curious.

ApB ( 2019-09-23 15:10:55 +0300 )edit

Mine, Mæp ;) But as I mentioned before, Cairo may be usefull for general 2D graphics. But, well, it's a poll. If no-one else is interested, sure, there is no need to try to make this one goes in !

Damien Caliste ( 2019-09-23 18:02:59 +0300 )edit
Login/Signup to Answer

Question tools

Follow
8 followers

Stats

Asked: 2019-09-19 12:27:51 +0300

Seen: 1,266 times

Last updated: Oct 03 '19