Skip to content

chore(authenticator): add Flatpak desktop entry and AppStream metainfo#485

Open
the-narwhal wants to merge 4001 commits into
ProtonMail:mainfrom
the-narwhal:add-flatpak-metadata
Open

chore(authenticator): add Flatpak desktop entry and AppStream metainfo#485
the-narwhal wants to merge 4001 commits into
ProtonMail:mainfrom
the-narwhal:add-flatpak-metadata

Conversation

@the-narwhal
Copy link
Copy Markdown

@the-narwhal the-narwhal commented Apr 12, 2026

What

Adds two files to applications/authenticator/ to support the Flatpak packaging of Proton Authenticator on Flathub:

  • me.proton.Authenticator.desktop — XDG desktop entry (app launcher integration on Linux)
  • me.proton.Authenticator.metainfo.xml — AppStream metadata (description, OARS content rating, branding colours, release history) used by the Flathub store listing and GNOME Software

Why here

The Flathub submission guidelines require that .desktop and .metainfo.xml files be maintained in the upstream source repository rather than in the Flathub manifest repo. The Flatpak build installs them with explicit install commands — no changes to the existing build system are needed.

What this doesn't do

  • No changes to any existing file
  • No effect on the npm/Yarn/Tauri build pipeline
  • No new runtime dependencies

Related

MargeBot and others added 30 commits April 7, 2026 16:34
Fix warning log

See merge request web/clients!23980
Update OpenPGP.js to v6.3.0 (limit argon2 max memory to 1gb, internal streaming optimizations)

See merge request web/clients!23484
AUTO: Update certificate transparency log list

See merge request web/clients!23948
DRVWEB: Add proxy instrumentation to detect SDK/node mistmatch

See merge request web/clients!23979
…ain'

[IDTEAM-5935] Fix identity email autofill regression

See merge request web/clients!23991
show subtitle in firefox as addon not allowed to open about:addons

See merge request web/clients!23987
[DRVWEB-5172] sidebar refactoring

See merge request web/clients!23862
[LUMO-477] Add mobile selector for theme button

See merge request web/clients!23982
[DRVWEB-5297] Generate .mov thumbnail properly

See merge request web/clients!23960
Update Drive SDK to 0.14.4

See merge request web/clients!23990
Fix drag and drop into breadcrumb

See merge request web/clients!23995
Add new cancellation modal for feedback first journey

See merge request web/clients!23983
…ain'

Make canLoadRunner async and improve storage checks

See merge request web/clients!23989
Fix race condition in recording and move participants maps state into slice

See merge request web/clients!23911
Fix import modals not being shown in contacts and calendar settings

See merge request web/clients!23996
mmso and others added 18 commits April 10, 2026 15:13
Meet B2C plan

See merge request web/clients!24047
[PP-366] Allow copying TOTP even if sync is loading

See merge request web/clients!24083
Refactor cancellation flow to enable composable flows

See merge request web/clients!23870
Pass: AutoFill UI

See merge request web/clients!23170
[DRVWEB-5330] fix share modal enter key

See merge request web/clients!24080
[IDTEAM-9550] Show manage actions on group when you are manager through direct share

See merge request web/clients!24046
Sheets: Fix issue with locale breaking on commit load

See merge request web/clients!24088
Normalize the zipcode before sending the request for born private

See merge request web/clients!24090
Remove unused appName prop

See merge request web/clients!24092
@the-narwhal the-narwhal marked this pull request as ready for review April 12, 2026 15:57
@the-narwhal
Copy link
Copy Markdown
Author

One more ask: upstream release of the frontend dist tarball

This PR handles the .desktop and metainfo.xml side of the Flathub submission cleanly. There's one remaining blocker that also needs upstream support: the pre-built frontend dist.

The problem

Proton Authenticator is a Tauri app. Flatpak builds run without network access, which means yarn/webpack can't run at build time. The Flatpak manifest therefore needs a pre-built copy of applications/authenticator/dist/ (the webpack output) supplied as a source archive. Flathub's rules require all source archives to be referenced by a stable, permanent URL — they cannot live in the Flathub submission repo itself.

Right now there is no stable upstream URL to reference. ProtonMail/WebClients has no GitHub Releases and no proton-authenticator@* tags (though the pattern exists for proton-vpn-settings, proton-wallet, proton-meet, etc.).

What would fix it

A lightweight GitHub Actions workflow, triggered when a proton-authenticator@* tag is pushed, that builds the frontend and uploads the dist as a release asset. This already follows the existing per-product tagging convention in the repo.

The build for the frontend dist is just:

yarn workspace proton-authenticator build:web

Output lands in applications/authenticator/dist/. The workflow would then package that directory and attach it to the release:

# .github/workflows/authenticator-dist-release.yml
name: Authenticator dist release

on:
  push:
    tags:
      - 'proton-authenticator@*'

jobs:
  build-dist:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'yarn'

      - run: yarn install --frozen-lockfile

      - run: yarn workspace proton-authenticator build:web

      - name: Package dist
        run: |
          VERSION=${GITHUB_REF_NAME##*@}
          tar -czf authenticator-dist-${VERSION}.tar.gz \
            -C applications/authenticator dist/

      - uses: softprops/action-gh-release@v2
        with:
          files: authenticator-dist-*.tar.gz

Once that's in place, the Flathub manifest source entry becomes:

- type: archive
  url: https://github.com/ProtonMail/WebClients/releases/download/proton-authenticator%401.1.4/authenticator-dist-1.1.4.tar.gz
  sha256: <hash>
  strip-components: 0

No changes to the existing build system, CI pipelines, or release process for other products. It only fires on proton-authenticator@* tags.

Happy to open this as a separate PR if that's easier to route internally. Let me know if you'd prefer a different shape for the workflow (e.g. integrating into an existing CI file rather than a new one).

the-narwhal added a commit to the-narwhal/flathub that referenced this pull request Apr 12, 2026
authenticator-dist.tar.gz removed from git tracking. The manifest still
references it via path: — this will become a url: pointing to an official
ProtonMail/WebClients GitHub Release once upstream adds a release workflow
for proton-authenticator@* tags (tracked in ProtonMail/WebClients#485).

The file is added to .gitignore so it cannot be re-committed accidentally.
@D-Bao
Copy link
Copy Markdown
Contributor

D-Bao commented Apr 17, 2026

Hey, thank you for this PR! Instead of a GitHub Actions workflow, it would be more practical for us to set this up in our CI internally. We can make it build and publish the authenticator dist asset to GitHub releases automatically on new authenticator tag. I'll try to implement this and will get back to you when it's ready so you can test.

@the-narwhal
Copy link
Copy Markdown
Author

Fantastic! Thank you!

@D-Bao
Copy link
Copy Markdown
Contributor

D-Bao commented May 12, 2026

@the-narwhal
Copy link
Copy Markdown
Author

Awesome! I'll pick up progress on the flathub item again and see if I can get it squared away for submission approval

@the-narwhal
Copy link
Copy Markdown
Author

the-narwhal commented May 17, 2026

Done! You can get the dist asset here https://github.com/ProtonMail/WebClients/releases/tag/proton-authenticator%401.1.5

I got it working locally using the dist asset and tags, thank you!

Flathub appears to be blocking the build from source submission stating that the .desktop and metadata.xml are required to be managed upstream. Is that something proton would be willing to incorporate into the main repo?

If so, I think it would be great to add for each proton desktop app too, since without it, I'll run into the same blocker for the other in progress app submissions (e.g. Meet).

@proletarius101 FYI above from the review feedback on the flathub Authenticator PR mentioned in this PR.

@mmso mmso force-pushed the main branch 3 times, most recently from b06f2f3 to 287241e Compare June 3, 2026 08:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.