Pengemasan Secara Mendalam

Apakah aplikasi Anda cocok?

Sebagian besar aplikasi grafis dapat dibuat menjadi Flatpak tanpa modifikasi, meskipun pembuatan Flatpak yang disandikan (sandboxed) untuk mencegah aplikasi melakukan tindakan sewenang-wenang terhadap akun pengguna kemungkinan memerlukan perubahan kode.

Beberapa hal yang dapat menyebabkan aplikasi tidak berfungsi dengan baik sebagai Flatpak:

  • Jika aplikasi menginstal layanan sistem atau mengubah berkas konfigurasi sistem

  • Jika aplikasi memerlukan akses ke biner atau berkas lain di /usr yang tidak dapat dibundel bersama aplikasi

Memilih ID aplikasi

Untuk memilih ID aplikasi yang sesuai:

  • Jika aplikasi sudah memiliki berkas desktop dengan format ini, maka itu adalah ID aplikasi yang digunakan.

  • Jika aplikasi mengekspor layanan D-Bus (lihat berkas di /usr/share/dbus-1/services/ — meskipun sebuah aplikasi dapat mengekspor layanan D-Bus tanpa menginstal berkas layanan), maka awalan dari nama D-Bus harus sesuai dengan ID aplikasi.

  • Jika aplikasi sudah dikemas di Flathub, harap gunakan ID aplikasi yang sama.

  • Jika tidak, Anda perlu membuat ID aplikasi baru. Ini harus merupakan perkiraan terbaik Anda tentang ID yang akan digunakan oleh pengembang asal. Jika mereka memiliki nama domain sendiri, itu harus menjadi dasarnya; jika tidak, gunakan basis pada platform hosting — misalnya com.github.<user/organization>.<Application>. Perlu dicatat bahwa ide awal dari ID aplikasi adalah agar bentuknya merupakan nama yang dibalik dan berada di bawah kendali Anda, jadi jika memungkinkan, lakukan koordinasi dengan pengembang asal, tanyakan apakah pilihan Anda sesuai, dan mintalah mereka mengganti nama berkas desktop dan ikonnya agar sesuai.

Aplikasi hanya dapat mengekspor sumber daya di bawah ID aplikasinya, sehingga berkas desktop dan ikon aplikasi harus memiliki nama yang sesuai. Tempat terbaik untuk menerapkannya adalah di pengembang asal. Tempat terbaik kedua adalah dalam paket aplikasi Fedora. Namun jika ini tidak memungkinkan, Anda dapat melakukannya dalam berkas container.yaml Anda. Lihat bagian [Renames] di bawah ini.

Versi

Flatpak di Fedora berbeda dari paket biasa karena tidak ada versi aplikasi terpisah untuk F41, F42, rawhide, dan seterusnya. Sebaliknya, hanya ada satu versi yang merupakan versi stabil terbaru untuk semua versi Fedora.

Sebuah Flatpak menargetkan runtime tertentu. Versi stabil Anda sebaiknya menargetkan runtime yang sesuai dengan versi terbaru Fedora yang telah dirilis. Jika aplikasi belum dapat dibangun untuk versi Fedora terbaru, maka dapat diterima untuk sementara menggunakan versi runtime Fedora sebelumnya, namun hal ini sebaiknya menjadi pengecualian.

Secara umum, versi runtime sebelumnya hanya didukung selama Flatpak Fedora masih memerlukannya. Setelah semua Flatpak Fedora bermigrasi ke versi runtime terbaru, versi yang lama tidak lagi didukung atau diperbarui.

Versi container untuk rilis stabil Anda harus berada pada cabang stabil dari repositori git Anda.

container.yaml

finish-args

Bagian flatpak/finish-args: dari container.yaml Anda menentukan izin yang akan dimiliki aplikasi.

Aplikasi tanpa sandbox, memerlukan X, dan mengakses jaringan
flatpak:
    finish-args: |-
        --share=network
        --socket=x11
        --filesystem=user
Aplikasi dengan sandbox
flatpak:
    finish-args: |-
        --socket=wayland
        --socket=fallback-x11
Aplikasi tanpa sandbox, memiliki dukungan wayland, dan menggunakan DConf host
flatpak:
    finish-args: |-
         --filesystem=host
         --share=ipc
         --socket=fallback-x11
         --socket=wayland
         --socket=session-bus
         --filesystem=~/.config/dconf:ro
         --filesystem=xdg-run/dconf
         --talk-name=ca.desrt.dconf
         --env=DCONF_USER_CONFIG_DIR=.config/dconf

Lihat dokumentasi Sandbox Permissions dan laman manual flatpak-build(1).

Penggantian Nama

Banyak aplikasi yang ada di Fedora tidak memiliki aplikasi dalam format standar. Anda dapat menambahkan kunci ke container.yaml Anda untuk mengganti nama sumber daya yang diekspor agar sesuai dengan ID aplikasi.

flatpak:
    rename-appdata-file: eog.appdata.xml
    rename-desktop-file: eog.desktop
    rename-icon: eog

Namun, cara yang lebih disarankan adalah memperbaiki ID aplikasi di dalam pengemasan RPM, atau bahkan lebih baik lagi, di tingkat pengembang asal. Alasan mengapa ini lebih baik adalah karena sistem dapat memahami hubungan antara kedua aplikasi tersebut dan tidak akan menampilkan entri ganda di GNOME Software atau daftar aplikasi yang diinstal.

Kunci lainnya

Daftar lengkap kunci yang didukung dari berkas manifest pembuat Flatpak yang dapat Anda tambahkan ke bagian flatpak: dalam container.yaml adalah sebagai berikut:

  • add-extensions

  • appdata-license

  • appstream-compose

  • copy-icon

  • desktop-file-name-prefix

  • desktop-file-name-suffix

  • end-of-life

  • end-of-life-rebase

  • rename-appdata-file

  • rename-desktop-file

  • rename-icon

  • rename-mime-file

  • rename-mime-icons

Lihat laman manual flatpak-manifest(5) untuk dokumentasinya.