2023/04/07 に半日くらい cygwin setup によるインストールができない状態になってました。ここでは勝手にまとめてみることにします。
Cygwin ML に setup ができない旨が投稿されました。
同じ頃に twitter でも同じ旨のツイートが見られました。
cygwin の最新の setup.zst がバグってるぽくてインストールできーん。
— masaakiz (@masaakiz9990713) 2023年4月7日
授業初日に「cygwinのインストールやりましょう」ってしたら、ミラーサイトが盛大に壊れてて「みんなで行けるミラーサイト探しましょう」になった
— ⍨ (@tos_kamiya) 2023年4月7日
メールによると setup.zst *1 に変な \
が入っていて、parse できなくなっていたようです。
build-depends: \, bison, cygport, dblatex, docbook2X, flex, gettext-devel, libGLU-devel, libcairo-devel, libcanberra-gtk-devel, libcurl-devel, libfreetype-devel, libglib2.0-devel, libgmp-devel, libgtk2.0-devel, libgtkglext1.0-devel, libpango1.0-devel, libpng-devel, libreadline-devel, libsqlite3-devel, libxslt, python3-devel, texinfo
たまたま前日に自分が deploy をして、その時はきちんと ini が生成されてたため、それ以降の他のパッケージの deploy でおかしくなったんだろうと思い、jobs サーバで履歴を見ると、gnubg が更新されていて、その中に怪しい diff を見つけました。
+BUILD_REQUIRES="bison flex docbook2X dblatex libxslt texinfo \ +gettext-devel libcanberra-gtk-devel libcairo-devel libcurl-devel \ +libfreetype-devel libglib2.0-devel libGLU-devel libgmp-devel libgtk2.0-devel \ +libgtkglext1.0-devel \ libpango1.0-devel libpng-devel libreadline-devel \ +libsqlite3-devel python3-devel"
どうやら calm *2 が行末でない位置に混入している \
を パッケージ名だと勘違いして、そのまま setup.ini に吐き出してしまったことが原因のようです。
メンテナの方が何処に住んでいるか知らないですが、日本が真っ昼間だと海外だったら普通に寝ている可能性があるため、対応は早くて夕方かなとか思いながら、とりあえず gnubg が壊れてそうだよというメールを cygwin-app ML *3 に投げておきました。
すると、すぐに反応があって、対応してもらえました。(自分のメールで気づいたか、もともと作業中だったかは不明。)
修正はすぐに mirror にも反映されて、無事 setup が動くようになりました。めでたしめでたし。
ただし、これを検出する対応は何かしら必要な気がします。
cygport 側で ini をつくる時に BUILD_REQUIRES
に明らかに不正な文字が入っているかをチェックするとかでしょうか?