KiCAD winbuild

PCのOSがWindows11になりました。なのでと言う訳でもないのですがbuildシステムがpowershellのshell scriptベースとなったので、改めて挑戦。

説明ページ(https://gitlab.com/kicad/packaging/kicad-win-builder)によればgitを入れとけばOKとのことだったので、一式をgitリポジトリから持ってきて実行開始。

いきなり「powershellではスクリプト実行できません」攻撃を喰らい撃沈。セキュリティ上の仕様によりスクリプトは実行できない状態にしてあるとかなんとか。いきなり丸腰ってもどうかと思ったので制限付き実行可状態として再度挑戦。

あれやこれやをダウンロードしているようで順調です。が、「cmakeが無い」と苦情。こんなことも有ろうかと思ってcmakeを最新版を入れてPathも通しておいたのですがダメ。よくエラーメッセージを見るとパス決め打ちでそこにcmakeが無いと。しかもバージョンまで決め打ちされているのでcmakeのアーカイブから当該バージョンを引っ張ってきて、再挑戦。

が、結果的には最後のあたりでエラーになって結局は自前buildには失敗です。

本家ではどうやってパッケージを作成してんでしょうね。毎度のことながら謎だ。

Kicad 5.1.12再挑戦その3

vcpkgの作成で結局7時間ほどがかかりました。その後のビルド作業中にglewとdoxygenが無いと苦情が出たので都度追加。結局このビルドの為にインストールしたのは、

  • cmake
  • git
  • vcpkg(オリジナルではなく、kicad用として提供されているものが必要)
  • swigwin
  • glew
  • doxygen

Visual Studio2019の機能としてcmakeとgitは含まれている感じなので、あえてインストールしておく必要は無かったかもしれませんが、vcpkgやKicadのソースの取り出しに使用したので、VSとは別に入れておいた方が良い気がします。

さて、警告は多数出たのですが、Build自体は2.5時間ほどで無事終了です。本体より環境構築の方が時間がかかっているのは癪なんですけどね。

相変わらずインストール用パッケージが生成されていないのは謎というか、反省点なのですが、まぁ需要が全くない自己満足ビルドなのでこれでOKかな。と言いたいところですが、元がWinbuilderと言っている以上インスートラーパッケージまで生成してくれないと不満が残ります。ビルドログに何か残っているかもしれませんね。

PCB sample

さて次はVM上の英語版Windowsではなく、英語環境として追加したユーザーアカウントで試したら何が起きるのかを確かめないと。

Kicad 5.1.12再挑戦その2

MSの開発用ライブラリから期間限定使用のWindows11の環境をダウンロード。VMplayerをインストールしてさっそく使用開始。

起動した画面はあちこちにあるサンプル通りの画像です。(左上になんか出てますが、そこはご愛敬ってことで)

開発テスト用ってことで最初からVS2019が入っているので、必要なのはcmakeなどのCLI系C++の開発ツール群をVSに追加してやるだけです。後はgitを入れて、PATHを通し、vcpkgのclone化と使用開始手順。次に環境変数VCPKG_DEFAULT_TRIPLETにx86-windowsをセットして、
.\vcpkg install boost cairo curl glew gettext glm icu libxslt ngspice opencascade opengl openssl python3 wxpython wxwidgets zlib
を書いてある通りに実行。流石にVM上なので結構時間がかかります。と言うか5時間経過してますが、まだこの手順が終了しません。しかしこちらの環境だとエラーになることもなく進行しているので、やはり元から英語環境でないとダメなんですね。

ちなみに日本語環境下でcp1251やcp65001を試してみましたが、同じエラーが出ますので、一時的対処ではダメなようですね。何か他の環境変数による指定が効いているのかもしれませんが、ぱっと見では見当たらない。

気になったので少し調べてみたら、ユーザー毎に言語系を変えられるようです。だとすれば英語系を使用する新しいユーザーアカウントを作ってそっちで作業すれば良かっただけのことだったかもしれません。後で試してみますか。

まぁ、Windows11に触れたのでとりあえず良しということですね。さて181/184で停滞しているvcpkgの処理。早く終わらないかな。

Kicad 5.1.12再挑戦

PCの再調整が終わったので、再度rebuildに挑戦。
本家を見ていたら「これからはWindowsの場合はMSVCだぜ!」ってな表記があったのでVSを入れて段取り開始。
VSのような便利なシステムをフルで無償利用させてくれるMSの太腹に感謝です。

vcpkgの構成の途中でwxpythonの構成でerror停止。msys2利用でも問題になるのですが、vcpkgでもエラー!
内容は構成の途中で文字コード変換からみでエラーになることが分かりました。なら対処法はと探ってみるとwxpythonのフォーラムで「よくわからないので、対処無し」と7月に書き込まれて放置状態。たぶん文字コード変換の必要のない環境では発生しない問題なのでしょう。

かくなる上は文字コードを英語に変更して試す必要があるのですが、これだけの為に再インストールは辛いな。普段使いにも不便になるし。

というわけでテスト用のWindows10イメージがマイクロソフトから提供されているので、VMに食わせて再挑戦してみますか。

久しぶりにKicad

コメント欄で新しい版が出ていることを教えていただきました。ようやく自宅PC環境が(windowsだけだけど)整ったので、さっそく作業開始。

ところが、コメントをくださった方と同じようにMsys2がメタメタ。パッケージのアップデートができない状況です。なので、こちらもMsys2をそっくり入れ替え。

あれこれ用事が有るので、今日はここまでかなぁ。
ある程度make_all.batが走るところまでは行きたいな。

22:20追記

やはりwxPythonからみのエラーが出たので、無効化して再実行。ソースがいつのまにか5.1.12になっていて驚きますが、さらには

  • CMake Error: The source directory “C:/kicad/msys64/home/xxxxx/MINGW-packages/mingw-w64-kicad-git/src/build-x86_64-w64-mingw32” does not appear to contain CMakeLists.txt.

なんてエラーが出て停止。本当に開発チームは提供されているkicad-winbuilderでスムーズにインストーラーパッケージが生成できているのだろうか?

KiCad 5.1.10 PKGBUILD

新しい版が出たようなので久しぶりにPKGBUILD。いつものように関係ファイルを用意して作業開始。
しかし、いつものようにエラー多発で散々でした。

まず最初のトライアルではmsys2の何かのプロセスが暴走してしまったようで何をやってもエラーとなる上に復旧しなくなりました。仕方がないのでWindowsの再起動からやりなおし。

2回目の試行ではuctr64が無いと怒られます。msys2_shell.cmdを実行して端末画面を出して、pacman -Syとすることでこれは解決するらしいので試してみると確かに解決します。これだったら最初から(初回のPKGBUILD実行時に)解決しておいてほしいな。
さらに3回目の試行では今度はclang64のmirrorlistが無いとか。環境整備はこっちの知ったことではないんだがと思いつつも、解決しないと先に進めませんのでmsys64/etc/pacman.d/にあるmirrorlist.ucrt64をコピーしてmirrorlist.clang64にrename。さらに中身の/ucrt64を全部/clang64に書き換えて再試行。
4回目ではclang64のdatabaseが無いと怒られます。再度pacman -Syを実行することで作成はされるんですが、2回目の時に実行したpacman -Syで作成されなかったのはなんでかな… つくづく底意地の悪い仕様ですね。

ここまでやってようやく環境が整ったようでbuild作業が始まります。しかし最後の最後で今度は、

==> パッケージを作成 "mingw-w64-x86_64-kicad-git"...
  -> .PKGINFO ファイルを生成...
  -> .BUILDINFO ファイルを生成...
  -> .MTREE ファイルを生成...
  -> パッケージの圧縮...
==> 作成完了: mingw-w64-x86_64-kicad-git r22369.a8672dd2f9-1 (2021年05月05日 16時07分57秒)
=> WARNING: You don't have the required toolchain installed for mingw32.
=> WARNING: To install it run: 'pacman -S mingw-w64-i686-toolchain'
==> エラー: Cannot find the strip binary required for object file stripping. 

と言う訳でtoolchainを導入せよとのことなので、pacmanから実行。そういえば5.1.9の時もそんなエラーが出ていたなと思い出しましたが、進歩が無いですね…

それよりも r22369.a8672dd2f9って何だよと言う訳で再度PKGBUILDの中身をチェック。例によってノーマークの場合はnightly-buildとなる模様です。
これだとなんかねと言う訳で再度ディレクトリ内を探してPKGBUILD-STABLE-5.1が5.1.10のためのファイルであることを確認したのでこれをPKGBUILDにrenameして再度トライ。

今度はソースパッケージをgit cloneした後のMD5SUMチェックで引っ掛かります。さすがに腹が立ったので全部のMD5SUMチェックを’SKIP’に変更してチェックしないようにして再実行。ようやく最後まで進行してパッケージが生成されました。

しかし、出来上がったのはmsysへのインストールパッケージである.zstファイル。必要なのはWindows用のインストーラーパッケージなので、まだ完了ではありません。
よくよく画面を見ると、

==> 作成完了: mingw-w64-i686-kicad-git 5.1.10_1-1 (2021年05月06日 08時49分54秒)
-- Success 0: cd "C:/kicad-src/msys64/home/Owner/MINGW-packages/mingw-w64-kicad-git" && export CARCH=x86_64 && TERM=vt220 makepkg-mingw -s --noconfirm
CMake Error at KiCad-Winbuilder.cmake:346 (message):
  Unable to extract major and minor version string

となっていて、まだ何かエラーがある模様。情報が少なすぎでどこをどうしたらよいのやら… まぁもう少しだな、週末頑張ろう。

KiCAD5.1.9 PKGBUILDその3

とりあえず途中経過。今回はビルドの途中でコンパイルエラーになってしまい。最後まで行きません。
何だろうな… VCPKGではうまく行っているので納得が行かない。wx云々って出ていたので、そのへんの何かのバージョンがVCPKGでやった時と違っているのかも。

それにしてもニトログリセリン並に繊細過ぎる…

KiCAD5.1.9 PKGBUILDその2

前回何もせずに実行したら変な感じに完了してました。が、よく見るとバージョンがr20783.d70cebcd62で、違和感だらけ。

よくよく見たらこれはNightly Buildって奴で、目的のものとは違います。

いくつか並んでいるPKGBUILDファイルの中身をチェックしてPKGBUILD-STABLEが5.1.9を生成するためのファイルと確認しました。なので、もともと有ったPKGBUILDファイルをPKGBUILD.nightlyに変更し、PKGBUILD-STABLEをコピーしてPKGBUILDにリネームして再度make_x86_64.batを実行。

途中経過ですが、5.1.9のソースを引っ張ってきているのでどうやらこちらが正解の模様。始まるまでの段取りに時間がかかってるので、その隙に手動でnewstroke_font.cppをコピーして始まるのを待ちます。もしこれ日本語フォントが使えるようになっていれば結果オーライなんですが、どうなりますことやら。

KiCAD5.1.9 PKGBUILD

少し時間が空いてしまったけど、とりあえずパッケージの作成に再挑戦。

PKGBUILD関係のファイルの置き場所がgithubからgitlabに移動しているので、そちら側から最新のwindows関係を取り出し。場所はhttps://gitlab.com/kicad/packaging/kicad-win-builderとなります。

例によってcmakeをインストールしてパッケージ生成に必要となる処理系やライブラリなんかのダウンロード開始。cmakeのインストール時にpathを追加するのオプションが出ますので、追加を忘れないようにすると後々楽です。またmsys2なんかも新たにインストールされますので、pkgbuildをするつもりの人は、最初からこちらの手順で進める方が無駄が無くてよいでしょう。

どうせ一発では通らないだろうと思ったので、とりあえずmake_x86_64.batを実行。あれこれ大量にダウンロード&インストールされます。
で、しっかりお約束のエラーで停止。一発目は各種更新を有効化するための自爆でした。
なので、再度make_x86_64.batを実行。またしてもなにやら更新を取り出しているので、もう少し行ったり来たりしそうな感じ。

まだmakefileにfontの入れ替え指示なんかも追加していないので、まだまだ先は長いぞっと。
まぁゆっくり楽しみましょう。

2/7 16:20追記

ログによると13:11には作業終了の模様。ただし、何かが不足していて最終のパッケージ生成には至らなかったとか。

==> 作成完了: mingw-w64-x86_64-kicad-git r20783.d70cebcd62-1 (2021年02月07日 13時11分34秒)
=> WARNING: You don't have the required toolchain installed for mingw32.
=> WARNING: To install it run: 'pacman -S -mingw-w64-i686-toolchain'
==> エラー: Cannot find the strip binary required for object file stripping.

ということで、msysのコンソールからpacman -S -mingw-w64-i686-toolchainとやるとエラー。-mingw64云々ってオプションは知らんよと。はてと思いpacmanの説明を読んだら、どうも2個目の-は不要の模様。
pacman -S mingw-w64-i686-toolchainとやったら無事にあれこれが入りました。が、これだとi686だけだよなと気になったので、念のためにpacman -S -mingw-w64-x86_64-toolchainも実行します。

あとは再度makeの実施。さてどうなるかな。

2/7 21:00追記
今度は無事に終了しましたが、完成物がどこにあるのか見当たらない(笑)。まぁ特に何かしなくてもパッケージが生成されることが分かったので良しとしましょう。
次はfontファイルの入れ替えをして日本語フォント対応パッケージを生成しなくては。
これが本番だからね。