2020-08-14

Flatpak パッケージとデスクトップ・アプリ

Flatpak のパッケージの作り方について、簡単な GTK+ (Vala) の GUI プログラムをデプロイするところまでを、ブログ記事 [1] [2] [3] にまとめました。

これであとは Flatpak のパッケージ作りに専念できるかというと、そうでもありません。例えば GNOME デスクトップでアプリの一覧にインストールしたアプリのアイコンを表示して、これをクリックして起動する方法について触れていないからです。

今回は、その触れていなかったところをテーマとします。

今回のテーマ

GUI アプリを Flatpak パッケージにして、これをインストールして GNOME デスクトップのアプリ一覧からアイコンをクリックして起動できるようにします。

使用した OS の環境は下記の通りです。

Fedora Silverblue 32 x86_64
» flatpak-1.6.5-1.fc32.x86_64
» flatpak-builder-1.0.10-1.fc32.x86_64

できそこないの電卓プログラム

いつまでも Hello World! のようなプログラムをサンプルに使うのも芸がないので、今回は電卓プログラムを用意しました。と言っても、本記事を作っている時点は GUI 部分だけで、電卓機能を実装していません。😅

そんなできそこないのプログラムですが、形だけあればサンプルに使えるので、下記 github に公開しました。後追いで完動するように仕上げます。🙏

そう、今回の Flatpak 用のマニフェストでは、github の上記リポジトリにあるソースを読み込んでビルドします。

マニフェスト

今回のマニフェストは次のとおりです。

com.blogspot.bitwalk.Calculator.yaml

今回は、マニフェストの他に、デスクトップ用のファイル (Calculator.desktop) とアイコン用のイメージファイル (Calculator.svg) を加えています。

サンプルに使う電卓プログラムとは別のリポジトリを github に作ってありますので、下記サイトのリポジトリをクローンするか、zip ファイルをダウンロードして解凍してご利用ください。

  • https://github.com/bitwalk123/com.blogspot.bitwalk.Calculator

GUI アプリをインストールして、デスクトップアプリとして扱うときは desktop ファイルの設定が重要になります。

マニファストでは Calculator.desktop を Flatpak の /app/share/applications/com.blogspot.bitwalk.Calculator.desktop へインストールするように記述しています。

マニフェストは desktop ファイルが参照している、アプリのアイコンとして使用する画像ファイルもインストールするよう記述しています。これは SVG 形式のファイル Calculator.svg で、/app/share/icons/hicolor/scalable/apps/com.blogspot.bitwalk.Calculator.svg へインストールしています。

アイコンには PNG 形式のファイルもアイコンに使用できますが、この場合は、いくつもの画像サイズを用意する必要があります。

Flatpak パッケージのビルドとデプロイ

ここでは、作業ディレクトリ $HOME/Projects/com.blogspot.bitwalk.Calculator 内で作業するものとして説明を進めます。ディレクトリ内は次のようになっています。

[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ ls
Calculator.desktop  Calculator.svg  README.md  com.blogspot.bitwalk.Calculator.yaml
[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$

作業ディレクトリ内 build-dir にビルド

まず、作業ディレクトリ内 build-dir にビルドします。

[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ flatpak-builder build-dir com.blogspot.bitwalk.Calculator.yaml
Downloading sources
Initialized empty Git repository in /var/home/bitwalk/Projects/com.blogspot.bitwalk.Calculator/.flatpak-builder/git/https_github.com_bitwalk123_vala-calculator.git-SE6FP0/
Fetching git repo https://github.com/bitwalk123/vala-calculator.git, ref refs/heads/master
...
(途中省略)
...
Initializing build dir
Committing stage init to cache
Starting build of com.blogspot.bitwalk.Calculator
========================================================================
Building module icons in /var/home/bitwalk/Projects/com.blogspot.bitwalk.Calculator/.flatpak-builder/build/icons-1
========================================================================
Running: install -Dm644 Calculator.svg /app/share/icons/hicolor/scalable/apps/com.blogspot.bitwalk.Calculator.svg
Committing stage build-icons to cache
========================================================================
Building module desktop in /var/home/bitwalk/Projects/com.blogspot.bitwalk.Calculator/.flatpak-builder/build/desktop-1
========================================================================
Running: install -Dm644 Calculator.desktop /app/share/applications/com.blogspot.bitwalk.Calculator.desktop
Committing stage build-desktop to cache
========================================================================
Building module calculator in /var/home/bitwalk/Projects/com.blogspot.bitwalk.Calculator/.flatpak-builder/build/calculator-1
========================================================================
Already on 'master'
The Meson build system
Version: 0.53.2
Source dir: /run/build/calculator
Build dir: /run/build/calculator/_flatpak_build
Build type: native build
Project name: Vala Calculator
Project version: 0.1
Appending CFLAGS from environment: '-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
...
(途中省略)
...
Build targets in project: 1

Found ninja-1.9.0 at /usr/bin/ninja
[3/3] Linking target calculator.
[0/1] Installing files.
Installing calculator to /app/bin
...
(途中省略)
...
Committing stage cleanup to cache
Finishing app
Exporting share/applications/com.blogspot.bitwalk.Calculator.desktop
Exporting share/icons/hicolor/scalable/apps/com.blogspot.bitwalk.Calculator.svg
Please review the exported files and the metadata
Committing stage finish to cache
Pruning cache
[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ 

ビルドの動作確認

動作確認をしておきます。

[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ flatpak-builder --run build-dir com.blogspot.bitwalk.Calculator.yaml calculator

(calculator:2): dbind-WARNING **: 20:16:14.656: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown
[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ 
calculator の実行例

ローカル・リポジトリにビルド

ローカル・リポジトリ $HOME/repo に再ビルドします。

[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ flatpak-builder --repo=$HOME/repo --force-clean build-dir com.blogspot.bitwalk.Calculator.yaml
Emptying app dir 'build-dir'
Downloading sources
Fetching git repo https://github.com/bitwalk123/vala-calculator.git, ref refs/heads/master
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
Starting build of com.blogspot.bitwalk.Calculator
Cache hit for icons, skipping build
Cache hit for desktop, skipping build
Cache hit for calculator, skipping build
Cache hit for cleanup, skipping
Cache hit for finish, skipping
Everything cached, checking out from cache
Exporting com.blogspot.bitwalk.Calculator to repo
Commit: c4a7566f37a3874b9f13aa2ceff1b221fb3b4601d58397d16bf42d6b0d3c65b9
Metadata Total: 37
Metadata Written: 1
Content Total: 7
Content Written: 0
Content Bytes Written: 0 (0 bytes)
Exporting com.blogspot.bitwalk.Calculator.Debug to repo
Commit: d427ed0b839dd77f98e201efee052c9ab604b7667166a3d78998541d22347932
Metadata Total: 15
Metadata Written: 1
Content Total: 4
Content Written: 0
Content Bytes Written: 0 (0 bytes)
Pruning cache
[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ 

リモート・リポジトリにインストール(デプロイ)

リモート・リポジトリにインストール(デプロイ)します。

[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ flatpak --user install bitwalk com.blogspot.bitwalk.Calculator
Looking for matches…

com.blogspot.bitwalk.Calculator permissions:
    ipc                   network               pulseaudio              wayland       x11      dri
    file access [1]       dbus access [2]       bus ownership [3]

    [1] xdg-run/dconf, ~/.config/dconf:ro, ~/.local/share/decsync
    [2] ca.desrt.dconf, org.freedesktop.Notifications, org.freedesktop.secrets, org.gnome.OnlineAccounts
    [3] org.gnome.FeedReader.ArticleView


        ID                                        Branch           Op           Remote            Download
 1. [✓] com.blogspot.bitwalk.Calculator           master           i            bitwalk           1.0 kB / 8.3 kB

Installation complete.
[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ flatpak list --user
Name               Application ID                         Version        Branch
Calculator         com.blogspot.bitwalk.Calculator                       master
Hello              com.blogspot.bitwalk.Hello                            master
Hello              org.gnu.Hello                                         master
[bitwalk@silverblue com.blogspot.bitwalk.Calculator]$ 

GNOME のアプリ一覧

GNOME デスクトップ画面の「アクティビティ」から「アプリケーションを表示する」を選んで、アプリ一覧を表示させて Calculator のアイコンが表示されていることを確認します。もし表示されていなければ、念の為、再起動して確認してください。アイコンを確認できればそれをクリックしてアプリが起動すれば OK です。

com.blogspot.bitwalk.Calculator インストール後の GNOME のアプリ一覧

以上で、ローカルでデプロイした Flatpak のパッケージをデスクトップ・アプリとして利用できるようになりました。

なお、本ブログで紹介している内容は、github のリポジトリにアップした情報を元に説明しています。そのため、予告無く内容が更新され、本記事の説明と乖離が出てくる可能性があります。

参考サイト

  1. bitWalk's: はじめての Flatpak パッケージ作成 [2020-08-08]
  2. bitWalk's: はじめての Flatpak パッケージ作成 (2) [2020-08-10]
  3. bitWalk's: はじめての Flatpak パッケージ作成 (3) [2020-08-11]

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: