Batocera.linux: 開発用更新サーバでNot Found問題
Batocera.linux ってなんじゃらほい?
…って人には無用な記事なのですが、
とりあえずどんなものかはGitHubでまとめてあるのでそっちで。
興味なかったらお帰りよろしう。
今回の課題
Batocera.linux のビルド環境には開発時の動作確認用に
簡素な更新サーバ機能があるわけですが、
Batocera 36 以降でそれが正常動作しなくなったことが発覚。
で、前回は間に合わせで雑な対応を施したのですが、
これをエレガントに書き直そうという試み。
どうあるべきか
正常動作していた Batocera 34 では
output/x86_64/images/batocera/images/x86_64/
をrootとして、すなわちその直下にある
ビルドの成果物をそのまま読み取ってた。
(35は対応断念したのでよくわからない)
これが Batocera 36 では、rootからさらに
x86_64/beta/last/ に飛び込んでくる。
この措置でEmulationStationからの更新と同じpathになるんですが、
肝心のビルド成果物の位置がそうなってない。
つまり、ここさえ合わせてしまえばいいだけの話。
どうしようか
この程度なら Makefile をちょこっと書き換えるだけ。
趣旨も NullPopPoCustom のezserverと同じなので、そこから拾ってくる。
ブランチ __Fix_36_WebServerPath にて対応済。
また、変更分を Batocera 37 用ブランチ __Fix_37_WebServerPath
にもpick。
webserverの起動手順を変更しただけなので、ビルドせずに
$ make x86_64-webserver
で動作確認可。
今回の成果
batocera-upgrade 機能復旧。
また、NullPopPoCustomのezserverは同じ趣旨で公式対応されたので
Batocera 36 以降に適用する必要はなくなった。
今後の予定
batocera.linux のハック箇所から公益性の高い部分を
Batocera 36,37に対応していく。