Skip to content

Conversation

@oech3
Copy link
Contributor

@oech3 oech3 commented Sep 25, 2025

内容

AppImageは既にSquashFSで圧縮されているので7zと分割をやめる。チェックサム用のtxtも消せる。
.tar.gzより小さい。

@oech3 oech3 mentioned this pull request Sep 25, 2025
3 tasks
@voicevox-preview-pages
Copy link

🚀 プレビュー用ページを作成しました 🚀

更新時点でのコミットハッシュ:92bcbba

@oech3
Copy link
Contributor Author

oech3 commented Sep 25, 2025

7z l *.AppImage

...
File System = SquashFS 4.0
...
Method = ZSTD

デスクトップエントリーもあるので.tar.gzを廃止して--appimage-extractしてもいいかも(好きではないですが)。

@sabonerune
Copy link
Contributor

GitHub Releasesにアップロードできるファイルサイズは1つ当たり2GiBに制限されています。
https://docs.github.com/ja/repositories/releasing-projects-on-github/about-releases#storage-and-bandwidth-quotas
そのためGPU版(VOICEVOX.AppImage)は分割する必要があります。

また、インストーラーも修正する必要があります。

@Hiroshiba
そういえばGitHub Releasesの上限が2GBなのに現在1GB単位で分割している理由は分かりますか?
#95 で1GBで分割したことは分かるのですが理由は見当たりませんでした。
現在Github Releasesはダウンロードが5分以内終わらない場合、強制的にタイムアウトする仕様となっていますが当時はないはずです。

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR simplifies the Linux AppImage distribution process by removing compression and splitting steps. Since AppImage files are already compressed with SquashFS, the additional 7z compression and file splitting is unnecessary and results in larger file sizes compared to plain .tar.gz archives.

  • Removes the complex AppImage splitting workflow that created multiple .7z archive parts
  • Eliminates checksum .txt file generation
  • Directly uploads .AppImage files instead of compressed split archives

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

sevenc-nanashi

This comment was marked as duplicate.

Copy link
Member

@sevenc-nanashi sevenc-nanashi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

誤爆。AppImageが2GBを超えたら死にそう?

@oech3
Copy link
Contributor Author

oech3 commented Sep 25, 2025

installer_linux.shを見逃していました。
生のAppImageの2分割は避けられない感じでしょうか。AppImage自体が完結しているので、インストーラーも廃止できるとか考えていましたが残念。

@Hiroshiba
Copy link
Member

Hiroshiba commented Sep 25, 2025

@sabonerune

現在1GB単位で分割している理由は分かりますか

1GBで、とお願いした記憶がある気がしないでもないですが、ちょっと覚えてないです!!!
なんだろう。。electronとかnsisとかで1GB制限があったとか・・・・・・・?全く覚えてないです。。。

たぶん2GiBが最大だけど、安全マージンで1GBになっているんだと思います!

ちなみにエンジンの方は1900MBっぽみ。
https://github.com/VOICEVOX/voicevox_engine/blob/d4edff21e7d1c2a075d60b180089e1dfa0359481/.github/workflows/build-engine.yml#L500

@oech3
すみません、これ圧縮しない理由ってなんででしたっけ・・・!!
たしかどこかのissueで圧縮不要みたいな話をした記憶があるのですが、どこだったか覚えておらず・・・。
リンクを張っておくと相互にジャンプできるので便利かなと!

@oech3
Copy link
Contributor Author

oech3 commented Sep 25, 2025

@Hiroshiba AppImageは既に圧縮されているためです。#2750 (comment)

@Hiroshiba
Copy link
Member

あーそちらです、ありがとうございます!!

@oech3
Copy link
Contributor Author

oech3 commented Sep 25, 2025

libsndfileはAppImage内にあるので、伸長用の7z*libsndfileのインストールはインストーラーから廃止できるという理解でよろしいでしょうか。

@sabonerune
Copy link
Contributor

このインストーラーは以前のバージョンのリリースもダウンロードする機能があります。
そのためlibsndfileは0.15未満の場合のみチェックするというコードになっています。

消すなら #1131 対応までやる必要があるかも。

@oech3
Copy link
Contributor Author

oech3 commented Sep 25, 2025

1 GBで分割する理由は多分2 GB以下のcpu版と2 GB以上のgpu版を同じ方法で分割する為ですね。
ユーザーとしてはシングルバイナリでほしいですが。curlでいきなり結合すればインストーラーでディスクを圧迫する事だけは避けられそう。

@oech3
Copy link
Contributor Author

oech3 commented Sep 26, 2025

これスクリプトの互換性の事を考えたら非圧縮のダミー.7z.00Nに分割した方がまだマシな気がします。個人的には生のAppImageがほしいところですが、閉じます。

@oech3 oech3 closed this Sep 26, 2025
@oech3 oech3 deleted the raw-appimage branch September 26, 2025 14:56
@Hiroshiba
Copy link
Member

非圧縮にするだけならありかな?と思ってました!
非圧縮にするというissueあっても良いかもですね。

あと途中で

たしかどこかのissueで圧縮不要みたいな話をした記憶があるのですが

と聞いた件は、↓の内容でした!リンク張っておきます。

@oech3
Copy link
Contributor Author

oech3 commented Oct 8, 2025

installerスクリプトの旧バージョンへの互換性の保持は必須ですか?

@Hiroshiba
Copy link
Member

@oech3 ちょっと判断どうすべきかサクッとわからないので、issue建てます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants