VOICEVOX / voicevox_core

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア
https://voicevox.hiroshiba.jp/
MIT License
857 stars 115 forks source link

gh actionsで追加およびmanylinuxでビルドできるように変更 #693

Open tuna2134 opened 9 months ago

tuna2134 commented 9 months ago

内容

PyPIにアップロードするにあたって、生成されるwheelのプラットフォームタグが対応していないため

関連 Issue

close #691

その他

tuna2134 commented 9 months ago
🔐 Using trusted publisher for upload
🚀 Uploading 30 packages
💥 maturin failed
  Caused by: 💥 Failed to upload "voicevox-0.0.0-cp310-cp310-linux_aarch64.whl" (1.5 MB)
  Caused by: Failed to upload the wheel with status 400: <html>
 <head>
  <title>400 Binary wheel 'voicevox-0.0.0-cp310-cp310-linux_aarch64.whl' has an unsupported platform tag 'linux_aarch64'.</title>
 </head>
 <body>
  <h1>400 Binary wheel 'voicevox-0.0.0-cp310-cp310-linux_aarch64.whl' has an unsupported platform tag 'linux_aarch64'.</h1>
  The server could not comply with the request since it is either malformed or otherwise incorrect.<br/><br/>
Binary wheel &#x27;voicevox-0.0.0-cp310-cp310-linux_aarch64.whl&#x27; has an unsupported platform tag &#x27;linux_aarch64&#x27;.
tuna2134 commented 9 months ago

ちなみにx86_64でも起きます。

Hiroshiba commented 9 months ago

PRありがとうございます! そもそもauditwheelは普通ONにする感じなんでしょうか。

Linuxでlibonnxruntime.so.*の不在を許してもらう

こちらのコメントがスルーされてるかもです。 このコメント通りだと、falseにするとビルドが通らないかも・・・?

tuna2134 commented 9 months ago

PRありがとうございます! そもそもauditwheelは普通ONにする感じなんでしょうか。

Linuxでlibonnxruntime.so.*の不在を許してもらう

こちらのコメントがスルーされてるかもです。 このコメント通りだと、falseにするとビルドが通らないかも・・・?

手元環境で通ったので、ひょっとしたらwheelに同胞しないようにするためなのではないのでしょうか、、、? 当時の担当者ではないのでなんとも言えないのですが、、、

Hiroshiba commented 9 months ago

@tuna2134 なるほどです。 少なくともコメントは消しておいた方が良さそうかもとか思いました!

Github actions見る感じエラーになってそうでした。audit-wheel関連だと思ったのですが、なんかエラーメッセージがよくわかんないですね。。。 https://github.com/VOICEVOX/voicevox_core/actions/runs/6986624508/job/19012505094?pr=693

💥 maturin failed
  Caused by: Failed to parse patchelf version
  Caused by: unexpected end of input while parsing minor version number
tuna2134 commented 9 months ago

@tuna2134 なるほどです。 少なくともコメントは消しておいた方が良さそうかもとか思いました!

Github actions見る感じエラーになってそうでした。audit-wheel関連だと思ったのですが、なんかエラーメッセージがよくわかんないですね。。。 https://github.com/VOICEVOX/voicevox_core/actions/runs/6986624508/job/19012505094?pr=693

💥 maturin failed
  Caused by: Failed to parse patchelf version
  Caused by: unexpected end of input while parsing minor version number

多分バージョンの形式が不適切だからかと、、、?

Hiroshiba commented 9 months ago

patchelfに問題がありそうで、まあ確かにバージョンはsemver的におかしそうですが、なんで今これがエラー出た感じなんですかね。。 https://pypi.org/project/patchelf/

例えばこっちではエラーが出てないので・・・

tuna2134 commented 9 months ago

patchelfに問題がありそうで、まあ確かにバージョンはsemver的におかしそうですが、なんで今これがエラー出た感じなんですかね。。 https://pypi.org/project/patchelf/

例えばこっちではエラーが出てないので・・・

うーん、多分patchelfがmanylinuxにする上で動くようになったとか?ですかね、、、

Hiroshiba commented 9 months ago

@tuna2134 全く同じことを考えてました! 今 @qryxip さんが確認してくださってるのですが、ローカル環境で同じことを試してもエラーが出ない、みたいな状況です。 追加でCUDAがonになっていたり、ubuntu20であることが条件かも。

どちらにせよ、これどうやって迂回すればいいんですかね。。。。。。。

qryxip commented 9 months ago

ここにx.y.z.wみたいなpatchelfのバージョンが来て死んでいるのはほぼ間違い無いと思います。skip_auditwheelsで今までは抑えられていたところですかね...?

https://github.com/PyO3/maturin/blob/v1.3.2/src/auditwheel/patchelf.rs#L21

qryxip commented 9 months ago

バージョンはPythonパッケージではなく、ここから.strip_prefix("patchelf")して.trim()して0.17.2のように読んでいるようです。ここが変なことになってそう。

❯ patchelf --version
patchelf 0.17.2
Hiroshiba commented 9 months ago

@qryxip @tuna2134 分かった気がします! ubuntu20のgithub actions環境だと、デフォルトで入っているpatchelfのバージョンが0.10でした。 これがマイナーバージョンのパースエラーになってるのかなと!!

qryxip commented 9 months ago

PythonパッケージのpatchelfがPython環境下にpatchelf(1)をインストールするはずですが、そっちに$PATHが通ってなくて/usr/bin/patchelfを使おうとしているとかでしょうか...?

qryxip commented 9 months ago

↑いやmaturinが使えてる時点で$PATHは通ってますね。patchelf(1)のインストールがスキップされている可能性はありますが。

tuna2134 commented 9 months ago

@qryxip @tuna2134 分かった気がします! ubuntu20のgithub actions環境だと、デフォルトで入っているpatchelfのバージョンが0.10でした。 これがマイナーバージョンのパースエラーになってるのかなと!!

ふむふむ、なるほど

tuna2134 commented 8 months ago

チェックお願いします

Hiroshiba commented 8 months ago

テスト用のPyPIにあるvoicevoxのインストールを試してみました!!! ↓でいけますね!

pip install --extra-index-url https://test.pypi.org/simple/ voicevox

エラーになったのと、気になった点がいくつかあったのでコメントです!!

tuna2134 commented 8 months ago

linuxのwheelのみonnxruntimeのリンクファイルを切り離したいけど、どうすればいいんだ? auditwheel無効にすると、アップロードできないし、、、

Hiroshiba commented 8 months ago

えっと、文脈を整理すると、

って感じですよね!

うーーーーーーん。どうすれば良いんでしょう。。。 そもそもonnxruntime-rsとmaturinの連携が良くないのか、maturinの挙動を単純に理解できないのか、どっちかわからない気がしていて根が深い気がしますね・・・。 個人的には、linuxだけ.soが含まれちゃってるけど、まあ実行はできるので、将来なんとかしたいものとしつつとりあえずpip installできる形を目指しても良いのかなとちょっと思いました!

(あ、もし @qryxip さん的に思い当たるフシがあればお聞きしたいです。)

qryxip commented 2 months ago

802 によりONNX Runtimeをリンクしなくなったので、その辺はもう悩まなくて済みそうです。

(あと #806 でskip-auditwheel = trueを消しました)

tuna2134 commented 2 months ago

802 によりONNX Runtimeをリンクしなくなったので、その辺はもう悩まなくて済みそうです。 (あと #806 でskip-auditwheel = trueを消しました)

ありがとうございます。