Try   HackMD

2023-11-28 主題分享 Flatpak(Linux軟體套件格式)介紹

活動資訊

報名資訊

場地可容納人數約 15 ~ 25 人。目前活動設定 15 人座位,候位 3 人。報名活動請至下方網頁(kktix):

https://hackingthursday.kktix.cc/events/2bfe702b

也歡迎現場直接參加,若人數超過上限,以有填表報名者優先。

活動形式

於 19:00 ~ 20:00 大家各自下班後,由大家自行攜帶餐點及飲料至摩茲工寮邊吃邊聊、敘敘舊。待茶餘飯飽之後,約於 20:00 前後,由主持人簡短介紹當天的主題及講者後,由講者開始跟大家分享他的經驗跟見聞。
分享的時間長短不限,可以是 7 分鐘的 lightening talk, 也可以是 20~30 分鐘的侃侃而談。由講者自由發揮。

講者介紹完內容之後,後續即進入提問回答及自由閒聊時間。由於能和講者跟其他與會者第一手的接觸與交流,後半段的自由交流時間常常是能認識新朋友和意外收獲的好時光。

不論是老朋友、新朋友,都歡迎帶著一個輕鬆交流的心情前來參加。

講題簡介

Flatpak (a Linux App Package) Introduction

在現今 Linux 生態系中,導入 Sandbox 概念的 Flatpak [1] 技術,已逐漸成為桌面程式的主流封裝格式。使用 Flatpak 封裝的應用程式,可以上架到 Flathub (The Linux App Store) [2],各 Linux distribution 使用者就可透過一致且方便的方法下載、安裝與使用該應用程式。本次將分享 Flatpak 的基礎概念、封裝的步驟,與一些實際案例。

The Flatpak [1] with Sandbox concept has been becoming the major desktop application packaging format. The Flatpak applications can be uploaded to Flathub (The Linux App Store) [2]. Then, users of all Linux distributions can download, install and use the applications with the same tool / consistent way. Will introduce the basic concept of Flatpak, how to package as a flatpak application, and explore some real cases this time.

[1]: https://flatpak.org/
[2]: https://flathub.org/

投影片

Package Applications as Flatpaks - HackMD

(Author: 潘建宏 StarNight)

錄影

Flatpak (a Linux App Package) Introduction - YouTube

(感謝 DreamerC 協助錄影與上傳)

來賓

  • Mat
    • from H4
  • 果凍
  • 張oo誠
  • jeffery
    • 家裏開咖啡廳
    • 後來接觸個技術社群
    • 軟體、資安
  • eric (哲佑)
    • firmware, backend
  • dreamerc
    • 負責錄影
    • debian, ubuntu
  • 吳oo佑
  • Pellaeon
  • Ben Lau
    • from HK
    • AI
  • Kait Wang
    • Web, rails, vue, rust, nvim
  • RJ
    • 遠傳, IoT, ubuntu 社羣
  • StarNight (speaker)
  • 王oo中
  • kkyo
  • jelly

NOTE: 歡迎自行補充個人自介資訊,方便大家交流跟聯絡。若有匿名需求者,也歡迎自行 mask/unmask 。

活動照片

Photo album - 2023-11-28_主題分享_StarNight_Flatpak

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

(逆時針左起: StarNight, RJ, Kait, Ben Lau, DreamerC, Eric哲佑, Jeffery, 張oo誠, 果凍)

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

(逆時針左起: StarNight, RJ, Kait, DreamerC, Eric哲佑, Jeffery, 張oo誠, Mat)

活動筆記

(about xcode 封裝) pkg 吧?
Ben Lau: 蘋果不是自動的,還是要設定

  • MSIX

  • 若是像 systemd 的話, 就不能用。 目前還是主要是以桌面程式爲主。

--share=network
--socket=fallback-x11
--socket=wayland

x-checker-data

org.endlessos.Key/org.endlessos.Key.yaml at master · flathub/org.endlessos.Key:

        x-checker-data:
          type: git
          tag-pattern: ^v([\d.]+)$

常用指令

list

  • flatpak list 列出目前安裝的 flatpak
  • flatpak list --app 只列出 app 類別的 flatpak

run

  • flatpak run <id> 執行 flatpak ,預設會執行 manifest 裡定義的 command,後面可接權限參數讓這次執行時,暫時複寫 manifest 裡 first-args 定義的權限
  • flatpak run --command=<cmd> <id> 執行時不執行 flatpak 內預設指令,而是執行 <cmd>

info

  • flatpak info <id> 查看 flatpak 資訊
  • flatpak info -l <id> 列出 flatpak 安裝的路徑
  • flatpak info -v <id> / flatpak info -vv <id> 列出更多資訊

FAQ

Question

Eric哲佑:

Q: 如何全機裸奔?
主要是測試時或是找問題時,沒辦法一一測。
而會想先把權限全開,看能不能排除/確定是不是權限的問題

StarNight:

  • 目前沒有 ALL 的選項,要按文件列的一一打開。
  • 但有些權限在文件上沒有寫(?!)

Question

Kait:

Q: 版本問題
Q: branch 問題

StarNight:

通常會是 tag

https://github.com/flathub/org.endlessos.Key/blob/master/org.endlessos.Key.yaml

  - name: kolibri-gnome
    buildsystem: meson
    builddir: true
    sources:
      - type: git
        url: https://github.com/endlessm/endless-key-flatpak.git
        tag: v0.8
        commit: 36394a83686ac93318639a1f45ea660ced0579b6
        x-checker-data:
          type: git
          tag-pattern: ^v([\d.]+)$

根據 source 的 upstream 去定的版本

看上面列的是 stable , 但自己 build 的是 master

  • 跟 flatpak 的 repo 有關

Question

Mat:

Q: reproducible build by Mat

Q: 預設設定檔(ex: /etc/...) 跟封裝的預設設定檔之間是否有交互影響?

  • 例如: 有個程式(記爲: A-original) 原本讀取 /etc//usr/share/ 下的預設設定檔。
  • 後來該程式推出了 Flatpak (記爲: A-flatpak) 也封裝了自己的預設設定檔
  • 在同時有舊設定檔跟新的封裝設定檔之下,是否會有互相干擾的問題?

Q: security library 例如 libssl 資安修補會一直出,那該 pak 如何 update ?

  • 因爲 security fix 會一直出,那已封裝的舊 libssl ,夾帶有 security hole 的 pak 該如何處置?

StarNight:

  • reproducible build
    • 因爲有 timestamp 的關係, 所以每次 checksum 都會不一樣

補充資料:

Question

吳oo佑:

Q: dependency 問題
(註: 這一段沒聽清楚)

StarNight:

  • Flatpak 不相依於 flatpak, 但 flatpak 相依於 flatpak runtime

Share

  • Feedback by pellaeon

Flatseal | Flathub

  • 用來管理 Flatpak 權限的方便工具