Tutorial Pengemasan

Membuat Flatpak dari aplikasi yang sudah dikemas di Fedora melibatkan dua langkah. Pertama, Anda perlu membangun ulang RPM aplikasi beserta dependensi apa pun yang tidak termasuk dalam runtime. Lalu, Anda harus membuat container dari aplikasi tersebut. Dalam konteks Fedora, flatpak hanyalah bentuk lain dari container, dan diperlakukan dengan cara yang sangat mirip dengan container Docker yang digunakan untuk aplikasi server.

Seperti halnya paket, instruksi untuk membangun flatpak RPM dan container disimpan di git pada https://src.fedoraproject.org dan proses pembangunannya dikoordinasikan melalui https://koji.fedoraproject.org. Flatpak untuk sebuah aplikasi dapat ditemukan di https://src.fedoraproject.org dalam repositori flatpaks/<application>; repositori git ini berisi berkas container.yaml, yang menentukan bagaimana paket diubah menjadi container Flatpak.

Penyiapan

Instal alat yang diperlukan:

$ sudo dnf install flatpak-module-tools

Pastikan pengguna Anda termasuk dalam grup mock (baik pembangunan RPM lokal maupun pembuatan container lokal menggunakan mock).

$ sudo usermod -a -G mock $USER

(Anda mungkin perlu keluar dan masuk kembali.)

Tambahkan remote flatpak Fedora testing:

$ flatpak remote-add fedora-testing oci+https://registry.fedoraproject.org#testing

Di Fedora, remote testing seharusnya sudah terpasang tetapi dalam keadaan nonaktif. Untuk mengaktifkannya, jalankan perintah berikut:

$ flatpak remote-modify --enable fedora-testing

Dan instal Fedora Flatpak Runtime jika belum terpasang:

$ flatpak install fedora-testing org.fedoraproject.Platform/x86_64/f42

Membuat container.yaml

$ mkdir lagrange && cd lagrange
$ flatpak-module init --flathub=lagrange lagrange

Perintah ini menghasilkan versi awal dari container.yaml. Opsi --flathub=lagrange akan mencari aplikasi di Flathub yang namanya atau ID aplikasinya cocok dengan lagrange, lalu menggunakan manifest Flathub sebagai dasar untuk menginisialisasi container.yaml. Jika ditemukan beberapa kecocokan, semuanya akan ditampilkan dan Anda perlu menjalankan kembali flatpak-module init dengan string pencarian yang lebih spesifik.

Mari kita lihat isi berkas container.yaml.

container.yaml
flatpak:
    id: fi.skyjake.Lagrange
    branch: stable
    runtime-name: flatpak-runtime
    runtime-version: f42
    packages:
    - lagrange
    command: lagrange
    finish-args: |-
        --socket=wayland
        --socket=fallback-x11
        --socket=pulseaudio
        --share=ipc
        --share=network
        --device=dri
        --filesystem=xdg-download
        --filesystem=home:ro

Berkas container.yaml ini bisa digunakan apa adanya, tetapi sering kali diperlukan beberapa modifikasi.

Jika belum ada build aplikasi di Flathub, Anda dapat menghapus opsi --flathub dari flatpak-module init. Dalam hal ini, Anda perlu memilih ID aplikasi dan mengedit container.yaml.

Melakukan build lokal

$ flatpak-module build-rpms-local --auto
$ flatpak-module build-container-local --install

Jika pembangunan RPM berhasil tetapi pembangunan container gagal, dan Anda perlu mengubah container.yaml untuk mencoba lagi, Anda dapat mengulangi hanya langkah terakhir.

Pengujian

Jika instalasi berhasil, Anda sekarang dapat menjalankan perintah berikut:

$ flatpak run fi.skyjake.Lagrange

Untuk mencobanya.

Permintaan src.fedoraproject.org

Silakan ajukan permintaan repositori Git baru sebagai berikut:

$ fedpkg request-repo --namespace=flatpaks <application>

Mengimpor konten flatpak Anda

Setelah repositori dibuat:

$ mv <application> <application>.old
$ fedpkg clone flatpaks/<application>
$ cd <application>
$ cp ../application.old/container.yaml .
$ git add container.yaml
$ git commit -m "Initial import"
$ git push origin stable

Membangun di Koji

Pertama, bangun paketnya:

$ flatpak-module build-rpms --auto

Jika proses tersebut berhasil diselesaikan, Anda dapat melanjutkannya dengan:

$ flatpak-module build-container

Menguji hasil build

Untuk menginstal build terbaru yang berhasil dari Koji, jalankan perintah:

$ flatpak-module install --koji <application>-flatpak

Membuat pembaruan

Temukan NVR dari build Flatpak Anda — jika tidak terlihat pada riwayat terminal, buka https://koji.fedoraproject.org/ dan cari di bagian "Packages" menggunakan nama <application>-flatpak.

Buka https://bodhi.fedoraproject.org/updates/new dan masukkan NVR flatpak di bawah Candidate Builds (abaikan “Packages”). Masukkan teks di bawah “Update notes” seperti “Flatpak awal untuk <application>”, lalu tekan <Submit>.