VOICEVOX / voicevox

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのエディター
https://voicevox.hiroshiba.jp/
Other
2.5k stars 305 forks source link

Flatpakのサポート #2110

Open RAVENz46 opened 4 months ago

RAVENz46 commented 4 months ago

内容

Linuxでのパッケージ配布は現状AppImageと.tar.gzで行われていますが、#218 の頃と比較してFlatpakがかなりメジャーなパッケージ配布方法となっておりパッケージのインストールもこちらのほうが容易なのでサポートしていただきたいです。

Pros 良くなる点

GUIのストアアプリからパッケージのインストール/アップデートが行えるためよりユーザーフレンドリーになる。 より幅広いディストーションで利用が可能になる。

Cons 悪くなる点

実現方法

AppImageをそのまま流用できそう。 参考: https://github.com/flathub/com.zettlr.Zettlr

VOICEVOXのバージョン

0.?.0

OSの種類/ディストリ/バージョン

その他

Hiroshiba commented 4 months ago

@RAVENz46 issue作成ありがとうございます!

検討に値すると思います。 Linuxに明るくないのでいくつか伺わせてください!

  1. AppImageの配布を停止してFlatpakに置き換えても良さそうでしょうか?

appimageにしかできなかったことなどがあれば問題あるかもです。 個人的には問題ないならappimageやめて1つだけ配布にしたいなと。

  1. electron-builderのFlatpakの項目の一番上に注意書きがあるけど、問題はなさそうでしょうか?

こちらの上に書かれている内容です。 https://www.electron.build/configuration/flatpak.html 公式?の配布場所があり、そこにアップロードできない的な…?

RAVENz46 commented 4 months ago

@Hiroshiba 自分もまだ理解が浅いため、誤りがあったら申し訳ないのですが、調べたところ

2. electron-builderのFlatpakの項目の一番上に注意書きがあるけど、問題はなさそうでしょうか?

こちらの上に書かれている内容です。 https://www.electron.build/configuration/flatpak.html 公式?の配布場所があり、そこにアップロードできない的な…?

おそらくelectron-builderをつかってソースからflatpak向けのビルドを作成することはサポートされていないということだと思います。flathub上にあるいくつかオープンソースのelectron製パッケージを確認したところいずれもAppImageやdeb、.tar.gzを経由するような形でインストールが行われていました。

1. AppImageの配布を停止してFlatpakに置き換えても良さそうでしょうか?

appimageにしかできなかったことなどがあれば問題あるかもです。 個人的には問題ないならappimageやめて1つだけ配布にしたいなと。

上で述べたとおり、一度AppImage等を経由しなければいけない関係上、現状ではおそらくFlatpak一本化は厳しそうですね... もう少し自分の方でもなにかいい解決策がないか探してみます。

sevenc-nanashi commented 4 months ago

おそらくelectron-builderをつかってソースからflatpak向けのビルドを作成することはサポートされていない

自分の解釈だと:

って感じだと思います(まだ詳しく調べてはいませんが)

RAVENz46 commented 4 months ago

おそらくelectron-builderをつかってソースからflatpak向けのビルドを作成することはサポートされていない

自分の解釈だと:

* Flatpakには(少なくとも)2つのバージョンがある:

  * Flathubに上げるバージョン
  * 1ファイルに全部まとめるバージョン

    * 制約きつめ

* electron-builderは後者しかできない

って感じだと思います(まだ詳しく調べてはいませんが)

失礼しました、恐らくそのとおりだと思います。 となると

ということになるのかな?

kledgeb commented 4 months ago

参考までに情報出しです。

アプリケーションストア

現状特定のLinuxディストリビューションに依存しない著名なアプリケーションストアに、Flathub(Flatpak)Snap Store(Snap)があります。

Linuxディストリビューション

カジュアルユーザー含めユーザー数が多いLinuxディストリビューションの中に、UbuntuLinux Mintがあります。

Ubuntuでは、開発プロセスを共有する公式フレーバーが存在し、全部で10種の公式フレーバーがあります。 公式フレーバーUbuntuと蜜に連携して開発されているLinuxディストリビューションです。

Linux Mintでは、4種類のエディションがあります。 つまりLinux Mintだけで、4種類のLinuxディストリビューションが存在します。

それぞれの対応方針を紹介します。

Ubuntu

Ubuntuは、デフォルトでSnap Store(Snap)に対応しています。

しかしFlathub(Flatpak)にはデフォルトで対応しておらず、Flathub(Flatpak)を利用したいユーザーはFlatpakのサポートに必要なソフトウェアを別途インストールする必要があります。

UbuntuはデフォルトでFlatpakに対応しない方針を出しており、公式フレーバーもそれに従っています。

Linux Mint

Linux Mintは、Ubuntuと逆の方針を取っています。 つまりデフォルトでFlathub(Flatpak)に対応しています。

しかしSnap Store(Snap)にはデフォルトで対応しておらず、Snap Store(Snap)を利用したいユーザーはSnapのサポートに必要なソフトウェアを別途インストールする必要があります。

まとめ

VOICEVOXFlathub(Flatpak)でリリースし、AppImageのリリースをやめる場合、 Ubuntu及び公式フレーバーユーザーにFlatpakのサポートに必要なソフトウェアのインストールを案内する必要があります。

余談

今回.tar.gzVOICEVOXには触れられていませんが、こちらで開発しているVerbaVoxは、.tar.gzVOICEVOXVOICEVOXのgithubからダウンロードして展開するインストーラーを内蔵しています。 もし暗に.tar.gz版廃止も視野に入っている場合、できれば.tar.gz版は今後も継続的にリリースしていただけると嬉しいです。

Hiroshiba commented 4 months ago

@RAVENz46 まとめありがとうございます!

electron-builderの制約上、Flathubでの配布はできない気がしています。 この制約がある場合でもflatpakが便利そうでしょうか? 👀 (例えば .flatpak をGithub Releasesからダウンロードし、ダブルクリックしてインストールができるとかならたぶんAppImageよりずっと使いやすい気がします!)


@kledgeb 詳しくありがとうございます!! 全然知らないのでとても参考になります。

ubuntuでは動作しないんですね。ググったら使うには追加パッケージが必要そうな雰囲気を感じました。 まあlinux向けのインストーラースクリプト内でflatpakコマンドが入ってない場合にインストールするように案内すれば良さそうですが、flathubで配布しない場合は使い勝手的にはappimageに劣ってしまうかもしれませんね。

.tar.gz版の配布を続けると思います!

RAVENz46 commented 4 months ago

@Hiroshiba AppImageと比較するとディストリビューションやバージョンの際による問題を減らせる(はず)のと、現状AppImage版では--no-sandboxオプションを利用しているためセキュリティ的に好ましくないですが、flatpakだとここを解消できると思うので悪くはないかなと。 ただflathubでリリースできない関係上自動アップデート的なことができるかはわからないのと、上述の制約であったりelectron系のアプリはzypakを使用するのですがこれを嫌うかどうか次第でしょうか。

また個人的にFlatpakの代わりにNixについても検討しています。 これだとAppImage版(動作確認済み)の配布だけでなくソースビルドもできますし、Macでのパッケージ配布も併用できます(ただしおそらくソースビルドは不可)。 ただこちらはこちらでfedora silverblueのようなimmutableなディストリビューション(NixOS除く)では配布が厳しいとは思われますが...

Hiroshiba commented 4 months ago

@RAVENz46 なるほどです!! sandbox周りの課題が解決できるのであればちょっと嬉しいかもですね!

とはいえubuntuユーザーに対しては、たぶんflatpak用のあれこれをインストールしてもらわないとなんですよね。 仮にflatpak1本化する場合、そのあたりのスクリプトもインストーラーに含めて案内って感じになりそうでしょうか。 それがlinux向けインストーラースクリプトに適合しそうかどうか確認する必要がありそうです。

まあとりあえずappimageと並行して、試しにflatpak版も作ってみるのはありかもしれません。

@RAVENz46 さんの興味のほどはどれくらいでしょうか? もし興味あれば、前述の通りappimageと並行しての形になってしまいますが、試しにelectron-builderでflatpak版を作ってみていただけると! といってもそんな難しくなく、まずはelectron-builerの設定をいじってみてビルドしてみる感じだと思ってます。 あるいは前述のインストールスクリプトに適合しそうか確認いただけると前に進めそうです。

そこまでだったら一旦closeさせていただき、実装や調査の挑戦者をお待ちすることになりそうです。

RAVENz46 commented 4 months ago

@Hiroshiba 自分でもできそうなのとNix版のソースビルドで行き詰まっているので、挑戦してみます! 進展があったり自分の力量だと厳しそうだったら再度ここに書き込みます

Hiroshiba commented 4 months ago

ぜひぜひ!! 難しかったとか、できなかったという知見も進捗なので・・・!!

RAVENz46 commented 4 months ago

Nixについては他の方がcpu版の方をパッケージしてくださっているようです.

https://github.com/NixOS/nixpkgs/pull/287354

Edit: フルサポート版あり. こっちだとMacも対応してる. https://github.com/NixOS/nixpkgs/pull/319403

Hiroshiba commented 4 months ago

おお、ご報告ありがとうございます!!

・・・・・これもしかしたらFlatpakの公式パッケージ側にプルリクエストを出すみたいな方法もあり得るんですかね・・・? だとしたらelectron-builderが非対応とか関係なく挑戦できるのかなと思い。

VOICEVOXから公式にその辺りのメンテナンスするのは難しいかもですが、issueをここに作ってパッケージ作成方法をディスカッションとかであれば、僕含むどなたかが答えてくれるかもです!