Cygwin の 32bit サポート削除への対応
32bit版cygtermがあってもなくてもインストーラが作成できるようにしました。 r10410 です。
AppVeyorで32bit cygterm がビルドできなくなってしまいました。
これは wiki:決定事項
- Cygterm+ ビルド環境 - Cygwin 最新を変更する。
32bit Cygterm をビルドし続ける限り変更されない(できない)。
ということでよろしいですか。
Cygwin Time Machine からインストールすれば、4-stable 用の Cygwin 1.5 環境を新たに構築できるのかもしれませんね。
Cygwin Time Machine は、Cygwin からダウンロードできなくなった(削除した=切った=捨てた)バージョンをミラー(保持・公開)し続けています。
Cygwin が、そういうことをしている Cygwin Time Machine のことを 「サポートを切ったレガシーバージョンを公開し続けていて鬱陶しい」と思っていないか気になりました。
どうやらそういう訳ではないようでした。https://sourceware.org/legacy-ml/cygwin/2017-03/msg00415.html
ユーザーが最新cygwinを使いたくない場合でも、 これ(buildtools\cygwin64)を使ってビルドすれば ユーザー環境を壊さずに最新版を使ってビルドできます。
Cygwin Time Machine を利用して cygwin32 をインストールするところが 常用環境では不安な感じですよね。
CIでもcygwin32bit版ビルド時に役にたつと思います。 AppVeyorに入れようと思い中です。
近いサイトからダウンロードするようにできない、 Cygwin Time Machine がなくなったらもう作れなくなる、 というのが気になっています。
最新の setup-x86_64.exe でインストールした環境に、少し古い setup-x86_64-2.909.exe でパッケージを放り込んで競合しないか(いま競合していなくても、最新の setup-x86_64.exe がどんどん新しくなるのでいずれ危うい?)というのも、少し気になります。
松尾さんとしては「Cygwin Time Machine があるうち・環境が構築できるうちは 32bit 版をビルドする」「作れなくなったら 64bit 版だけにする」というイメージですか?
もうひとつ気になる点があります。
動かしていませんが、2022/12/01-145510 が最終なのでは?という気がします。
をインストールする。
おそらく
http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html
"OLD UPDATE: 10/29/2021: Cygwin is dropping support for Windows Vista & Windows Server 2008." の項目
"The last major version of Cygwin to support Windows Vista & Windows Server 2008 will be 3.3.X" とあるので、3.4 になる手前までは Vista をサポートしているのではないか?
http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/
3.4.0-1 1670176085 2.924 2022/12/04-094805 http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/04/094805 3.3.6-1 1670104489 2.924 2022/12/03-135449 http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/03/135449 3.3.6-1 1670020731 2.924 2022/12/02-143851 http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/02/143851 3.3.6-1 1669935310 2.924 2022/12/01-145510 http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/01/145510
cygwin32-gcc-g++ はここまで存在しています。
3.3.6-1 1669935310 2.924 2022/12/01-145510 http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/01/145510
「Cygwin Time Machine があるうち・環境が構築できるうちは 32bit 版をビルドする」「作れなくなったら 64bit 版だけにする」というイメージですか?
そのイメージです。
32bit cygterm がどれぐらい必要とされているかがわからないですが、 ビルドできるなら入れたいなと思いました。 32bit cygtermをリリースに入れるのをやめる検討はそのうち必要になると思います。 テストが難しい、できないなら入れないほうがいいという意見もあると思います。 32bit cygterm入っててよかったーという方、いらっしゃるかな・・。
ビルドを属人化しない(誰でもビルドできる) ↓ 個人(開発者)環境に依存しないビルド ↓ CIでビルド(リリースバイナリもビルド)
というのがTT4の経験を踏まえて良いかなと思っています。
それと、Cygwin Time Machine を見つけたのが buildtools/cygwin64/ を 準備するモチベーションになりました。
将来はcygtermを経由せずにpty関連のAPI(Windows10+のAPI)を使って cygwin(その他シェルなど)を直接動かせるようにしたいでね。 接続先に関連するコードを整理しないと難しいなと思っています。
https://learn.microsoft.com/ja-jp/windows/console/creating-a-pseudoconsole-session
cygwin32-gcc-g++ のバージョンは、
http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/01/145510/index.html
6.4.0-1 が最終バージョンみたいですね。
いまダウンロード先になっているURLでも
http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2021/10/28/174906/
6.4.0-1 となっているので更新されていないんですね。
少し新しい 7.3.0-1 のテストバージョンの指定方法はわからなかったです。
https://www.cygwin.com/faq/faq.html#faq.setup.cli
最終版URLからダウンロードするように変更したのを添付します。
そのイメージです。
松尾さんの考えていることはわかりました。
私の感覚ではこんな感じです。重みは付けていませんが、提供するが+で、提供しないが-です。
要素 | スコア |
カバーできる動作環境が広くなる | + |
ビルド用環境を、実運用中の Cygwin と隔離したものにできる | + |
Cygwin Time Machine は公式ではない →非公式な存在である/いつまであるかわからない | - |
バージョン違いインストーラによるインストールで、不具合が出るようになるかもしれない | - |
すでに Cygwin 32bit 環境は新規に構築できないので、ユーザも環境もこれまでに構築したものでしか動かない →使いたいユーザが自分でビルドすればよい | - |
おそらくユーザからのニーズが高くない Windows 11 には x86 (32bit) 版が存在しない | - |
Cygterm+ 32bit バイナリをやめるなら 5.0 はきりがいい | - |
リリースバイナリをどうビルドするか ttssh2-dev 375 のあたりを wiki:決定事項 に落とし込んでいない(いわもとさんの意見を聞けていない)ので、ここではなく ML で続けるべきだと思いますが、Cygterm+ という具体例を取り上げた場合の話をひとつだけ。
「属人化を避け、誰でもビルドできるようにする」という目的だけなら、
使用する開発ツールを、新規入手できるものに限る
という手段もあります。
(松尾さんではなく)TeraTerm Project は「とにかくなんでも動かしたい」を目的にしていません(と思っています)ので、労力と効果のバランスも考慮に入れるべきだと思います。
確認ありがとうございます。gcc のバージョンは変わらないんですね。
添付の install_cygwin.cmake でもビルドできることを確認しました。
使用する開発ツールを、新規入手できるものに限る
とてもよさそうです。
ついつい作っちゃいましたが、Cygwin 32bit 環境は新規に構築できない、ニー ズがなさそう、やめるならきりがいい、はその通りですね。
cygwin32 gccが利用できる環境ならとりあえずビルドできるので、 ビルドはそのままにして、インストーラーに入れない、 exeが生成できてるならzip版にはおまけ的に入れてしまう、 というのはどうでしょうか。 (ツール ttreg, lscom も zip版にいれたくなります)
すごくニーズがあることがわかったら再度考えましょうか。
install_cygwin.cmake は、バージョンは同じでも一応新しい版を取ってくる ことになるのでソースツリーのものと差し替えたほうがいいかな?と思います がいかがでしょう
cygwin32 gccが利用できる環境ならとりあえずビルドできるので、 ビルドはそのままにして
環境構築が楽になるので、install_cygwin.cmake は大変ありがたいです。ビルド出来る状態のままにしておくのも賛成です。
インストーラーに入れない、 exeが生成できてるならzip版にはおまけ的に入れてしまう
(ツール ttreg, lscom も zip版にいれたくなります)
インストーラもzipも同じリリース物件なので、私は「内容物が異なる」のは良くないと考えます。私の意見はネガティブです。
バージョンは同じでも一応新しい版を取ってくる
はい。作っていただいた(ここに添付されている)もので差し替える、でよいと思います。
zip版は、インストーラーが動かない/したくない環境用で、インストーラーと 同じ内容にしておくという方針でしたね。失礼しました。
64bit版cygtermだけで進めましょうか?
install_cygwin.cmake を差し替えました。r10483です。
install_cygwin.cmake を差し替えました。r10483です。
ありがとうございます。
64bit版cygtermだけで進めましょうか?
そうですね。
インストーラを見てみようと思います。
r10548 で対応しました。
TODO まとめ用に作成
https://cygwin.com/pipermail/cygwin-announce/2022-December/010821.html
ttssh2-dev 495
影響範囲
対応