-
Notifications
You must be signed in to change notification settings - Fork 312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mac版の自動ビルド・リリース #399
Comments
やることリスト
|
Mac向けにリリースするとなると、ソフトウェアに署名する必要がありそうです。 |
一応、ビルドしたら.appとインストーラーがビルドされるので、.appの方なら署名は要らなさそうですね。 |
エンジンの自動ビルドが整備されました! ↑のバイナリをもとにmacの自動ビルドを作成できるかなと思います! |
インストーラパッケージを作成し、インストーラパッケージをDeveloper ID Installerで署名する場合は以下のコマンドを利用。
※ これがAction内で実装などできそうであれば、署名問題も解決しそうですね。 |
一応テストビルドでのインストーラーパッケージを貼っておきます。 |
インストーラーを試してみました。正常にインストールできました(インストーラーをコンテキストメニューから開くと、ダイアログで信頼するかどうか聞かれますが、そのまま直接インストーラーを使用できました)。VOICEVOX も使うことができました。環境は MacBook Air Early 2020, Intel Core i5, macOS Monterey (version 12.0.1) です。
|
おぉ、動作チェックありがとうございます。 |
新しいM1 Macbookが手に入ったので、このMacにインストールしてみました。
|
@kilinbox さん、ご報告ありがとうございます。 以下の方法でインストールを試してみてください。これを一行ずつmacOSのターミナルに貼り付けて下さい。 Command Line Toolsのインストール
Python 3.x.xと結果表示すればインストールされています。 Xcodeコマンドラインツールインストールを通してPython2系のPythonをインストール
|
@Apple-Yuki ありがとうございます。 |
VOICEVOX.app 内には Nuitka でコンパイルされた VOICEVOX のエンジン が入っており、その中に Python 環境も含まれているはずなので、追加の Python のインストールが必要ないようになっているはずです。実際、 @kilinbox さんの報告されたエラーメッセージを見ると、Python のエラーメッセージ(ValueError や ImportError など)が表示されているので、Python インタープリタは実行されているように見えます。 しかし VOICEVOX を実行可能にするだけなのであれば、 @Apple-Yuki さんの示された Python3 のインストール手順を行うことで起動するようになる可能性はあります。 エラーメッセージを見ると Python の標準ライブラリに含まれている hashlib モジュールのインポート中にエラーが起こっています。似たようなエラーが起こっている例を探したところ、Nuitka のリポジトリで同じようなエラーを扱っている Issue が立っているのを見つけたので共有します(ただし環境は Intel Mac のようです)。 この Issue では実行ファイルなどの rpath に追加されている Python 関連の共有ライブラリのパスが、 (ただし、この Issue の author の調査方法を参考に、自分の環境にインストールした VOICEVOX に含まれるバイナリ( otool -l *.so | grep ' name' | sort | uniq の実行結果
ls -1 *.dylib の実行結果
最終的にはユーザーに Python をインストールさせるのは避けたいところです。以下のような原因の切り分けが必要だと思います。
また、もし rpath の問題なのであれば、ビルド手順に install_name_tool コマンドで修正する手順などを加える必要があります。あるいは、先ほど挙げた Issue には Nuitka のオプションを利用するような解決策を提示している人( Nuitka/Nuitka#516 (comment) )もいたので、そのような方法も有効なのかもしれません。 |
僕も、このエラーを場当たり的に解決するのではなく、原因を特定してそもそもエラーが起こらないようにするのが最も良いのかなと思いました。 クリーンな環境でちゃんと動くかのテストは、github actionsでやると便利かもしれません。 |
あくまでもIntelビルドなのでApple Siliconシリーズ(M1シリーズ)で利用する場合、Rosetta 2で実行にチェックついてるか確認してみてください。(多分Intelビルドなので強制Rosetta使ってそうですが念の為) Mac に Rosetta をインストールする必要がある場合Rosetta 2 を使えば、Apple シリコンを搭載した Mac でも、Intel プロセッサ搭載 Mac 用に開発された App を使えるようになります。 以下の Mac は Apple シリコンを搭載しています。
あと動かないイシューはこのイシューの関連であるMacユニバーサルアプリ版のリリース:Release a Mac Universal App version. #348 側で議論する方がいい気もしますね。 |
まっさらなMontereyで動かなかった件ですが、解決しましたのでご報告します VOICEVOX起動時に以下のエラーが出る(前回報告した内容)
Rosetta2を使ったターミナルでHomebrewとPython3をインストール
VOICEVOX起動時、今度は以下のエラーが出る
gccをインストール VOICEVOX起動時、今度は以下のエラーが出る
パスを変更する VOICEVOX起動時、今度は以下のエラーが出る
Protocol buffersをインストール これで無事起動するようになりました。 |
@kilinbox さん報告ありがとうございます。おかげで問題がかなり整理され、原因と思われる部分がわかってきました。エンジンのビルドの問題なので、エンジンのリポジトリの方で Issue を立てました。 |
Appleが配布しているOS拡張であるCommandLineToolsを入れることでPython3が入るようで
|
ユーザーがインストールのために追加で作業が必要なのは、利便性が低いのではないかと思います。 @Hiroshiba にお伺いしたいのですが、VOICEVOXは動作に必要な前提となるソフトウェアを同梱する方針なのでしょうか? 私としては、VOICEVOXを配布するのであれば前提とするソフトウェアを同梱するか、インストーラで一緒に導入することができるようにしたほうが良いと思っています。 |
ターミナルの利用はハードルが高いと思うので、ダブルクリックするだけで実行できるように、同梱する形で作りたいと思っています。 別途インストールが必要なのはおそらくエンジン側が対応できれば解決なので、本当に後少しな気がしています・・・! |
ひとまずメモ: 一応調べると、gccもPython3と同じくCommand Line Toolsに同梱されているみたいです。 アプリケーションがPython 2.7を使用している場合、macOSは、開発者がアプリケーションをアップデートして、macOSの将来のバージョンで確実に動作するようにする必要があることを示すアラートを表示するようになりました。(80221011) -macOS Monterey 12.0.1 Release Notes |
公式にリリースされている VOICEVOX エディターは内蔵エンジンに https://github.com/Hiroshiba/voicevox_engine リポジトリの自動ビルドを用いています。macOS 向けの自動ビルドのコードはこちらです→ https://github.com/Hiroshiba/voicevox_engine/blob/a665d995f2e030087174458e70457f83894bdbc6/.github/workflows/build.yml#L14-L236 。自動ビルドの生成物は https://github.com/Hiroshiba/voicevox_engine/releases からダウンロード可能です。 近いうちに、macOS において、Python や gcc 等の依存関係がなくても、この自動ビルドの生成物のみで(ユーザーの追加インストールなしに)エンジンの実行ができるようになります(Python については、Nuitka を用いてバージョン 3.7 がコンパイルされており、システムに Python がインストールされていなくても、すでにほぼこれだけで動作できるようになっています)。Windows 版と Linux 版はすでに開発パッケージの追加インストールが不要なようになっています。現在の最新版では macOS 版だけに問題があります。しかしこれも https://github.com/Hiroshiba/voicevox_engine/issues/177 で議論を進めた結果、解決の目処が立ちそうなので今しばらくお待ちください。解決したら改めてこの Issue でお知らせします。この Issue では、Python や gcc の心配はしなくても大丈夫だと思います。 |
dylibの修正がマージされました(thx! @PickledChair )! |
Nuitka に起因する問題は https://github.com/Hiroshiba/voicevox_engine/pull/191 で解決できたと思います。しかし、macOS版エンジンの別の問題が見つかりました。それについては https://github.com/Hiroshiba/voicevox_engine/issues/193 で作業したいと思います。 |
https://github.com/Hiroshiba/voicevox_engine/pull/194 で上記の Issue が解決したと思われます。autobuild check 20211120 の ダウンロードしたものを macOS で解凍する時は |
@Apple-Yuki エンジンのMac版自動ビルドが作業完了なため、エディタも含めたソフトウェア全体の自動ビルドが可能になりました! |
@Hiroshiba わかりました。 |
なんかM1用にHomebrewが出たご様子でこのコマンドで入れろと言われる。というメモ
|
@Apple-Yuki 調子はいかがでしょうか👀 |
@Hiroshiba |
なるほどです! |
@Hiroshiba Linux・Windows版のビルドや、 @HyodaKazuaki さん、 @Apple-Yuki さんのこれまでの取り組みで得られた情報を参考にして、取り組むことができるかもしれないと感じています。なので取り組みたい気持ちはあります。今月は特に時間を割けそうなので、とりあえず自主的に作業を始めてみても良いでしょうか。やってみて出来なさそうだった場合はその旨ご報告します(どのあたりで詰まった等も含めて)。 |
おお、ぜひお願いします!! |
了解しました。自分も取り組んでみます。 |
@PickledChair さん、ありがとうございます。
|
で使ってみたアプリの操作感で、ちょっと気になったところをメモしておきます。
|
最初の
だけ、普段この操作をしないので気づきませんでした。残りは自分も気になっていました。これらは別途 Issue を立てると良さそうですね……! |
@Hiroshiba @PickledChair ・Apple Silicon M1、M1 Pro、M1 Maxでの動作は問題ありませんでした。(Rosetta環境のみ) なお、以下のイシューや改善点があります。
他に気が付いたらまたこちらに書きます。 |
M1動作確認ありがとうございます、動いてよかったです! コメントに関して追加のコメントをしてみます。
こちら再現できませんでした。正確な流れか、動画があると現象を共有できるかもです。
こちらは上で出てましたね
これらはmacとは関係無さそうでしょうか。別途issueを作って頂けると! |
内容
以下のイシューでvoicevoxがMacで動作するのが確認できたため、自動ビルドできるようにイシューとして作業を分けます。
https://github.com/Hiroshiba/voicevox/issues/348
リリースできる状態になったらプルリクなどでやります。
The text was updated successfully, but these errors were encountered: