summaryrefslogtreecommitdiff
path: root/README.md
blob: 6ca09b7861f209b598350064ff4fa5ff9f3fdc44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# sailfish-account-mastodon

Sailfish OS account integration for Mastodon.

## What This Repository Contains

This repository is the initial public form of the Mastodon plugin and contains all of its account integration components.

### `common/`
- Shared C++ library code used by multiple plugins.
- Includes Mastodon posts database support built on `socialcache`.

### `settings/`
- Sailfish Accounts provider and services definitions.
- Account UI QML files for account creation/settings/credentials update.
- Uses OAuth2 (`web_server`) account flow with per-instance Mastodon app registration.
- Current services:
  - `mastodon-microblog` (sync posts)
  - `mastodon-sharing` (Transfer Engine sharing)

### `buteo-plugins/`
- Social sync plugins for Buteo.
- Includes shared Buteo social plugin framework code and Mastodon posts sync plugin/profile files.
- Installs Buteo client and sync profile XML files.

### `eventsview-plugins/`
- Events view extension QML/C++ plugin for Mastodon posts.
- Includes delegate/feed item QML and `MastodonPostsModel`.

### `transferengine-plugins/`
- Transfer Engine integration for Mastodon image sharing.
- `mastodonshareplugin/`: sharing method discovery and share UI metadata.
- `mastodontransferplugin/`: upload implementation (upload media + create status).
- Shared account credential/status helper: `mastodonshareservicestatus.*`.

### `icons/`
- Mastodon SVG icon assets and Sailfish icon conversion setup (`sailfish-svg2png`).
- Provides themed service icons used by provider/settings/transfer UI.

### `rpm/`
- RPM spec for packaging all components.
- Defines subpackages:
  - `sailfish-account-mastodon`
  - `buteo-sync-plugin-mastodon-posts`
  - `eventsview-extensions-mastodon`
  - `transferengine-plugin-mastodon`
  - `sailfish-account-mastodon-features-all`

### Root project file
- `sailfish-account-mastodon.pro` ties all subprojects together.

## Build Requirements

This project is designed for the Sailfish OS build environment.

A full build is not possible without Sailfish SDK access (including target sysroot/tooling and Sailfish-specific development packages).

In particular, dependencies like these must come from the Sailfish SDK target environment:
- `buteosyncfw5`
- `socialcache`
- `sailfishaccounts`
- `nemotransferengine-qt5`
- other Sailfish/Qt account stack packages listed in `rpm/sailfish-account-mastodon.spec`

## Typical Build Flow (Inside Sailfish SDK)

1. Enter Sailfish SDK shell/target.
2. Run qmake build from repository root.
3. Build RPM package(s) from `rpm/sailfish-account-mastodon.spec`.

If you are outside Sailfish SDK, use static checks and code review only.