衝撃のわからなさ

わかってません

2024/02/28日報

mimic-cross実装 Pythonのバージョン指定を柔軟に versionハードコードをやめた。パッチが当たる限りは同じ処理が使い回せる。 Remove version hardcoding in python.postInstall サポートバージョンを増やす 正規表現でかけるようにしようかと考えたが、コ…

2024/02/27日報

coderabbit導入 した。便利な気配がしている。 localでも随時reviewして欲しい。 mimic-cross実装 設定をconfigurableにする deno compileとdynamic importの両立はとてもつらいことがわかったので、 変更後にrecompileしてもらう方針にした。 How to custo…

2024/02/25日報

deno compileするとdynamic importできない 最新issueは多分これ deno compile output can't dynamically import files that were not present at compilation time · Issue #18327 · denoland/deno · GitHub issueにある通り、下記を使うのが良さそう。 Git…

2024/02/24日報

gitコマンドをgithub actionsのuse: dockerコンテナ内で呼ぶ方法 git config safe.directory inside docker containers · Issue #2033 · actions/runner · GitHub これに引っかかった。 zigやめてrustにするか検討 gccのjump処理を同じようにrustで書いてみ…

2024/02/23日報

mimic-cross実装 execvpでgccを呼ぶようにするとfind_pacakge(MPI)でエラー find_package(MPI) これが失敗する。execvではなくシンボリックリンクだとfailしない だめだったこと 一応、nativeの付け替えをやめてみる cwdの伝搬を確認してみる ** https://git…

PFNから数えて計4年4ヶ月勤めたPreferred Roboticsを退職して、転職活動しながらクロスコンパイル環境を作ったりしています

はじめに 退職しました。 カチャカというロボットに主に組み込みまわりで関わっていて、発売されて満足しました。 量産ロボットに携わるという夢が1つも叶いました。 2ヶ月の有休期間中に、この間に作成したmimic-crossというクロスコンパイル用のDocker im…

2024/02/14日報

github actionsのドキュメント読む 今まで完全に雰囲気コピペして使ってたのでちゃんと一回ドキュメントを呼んだ。 メモ * 一番の本質が奥まったところにある ワークフロー構文 * ファイルと対応するのがworkflow * コンテナ一個と対応するのはjob * 1job 6…

2024/02/13日報

mimic-cross実装 mimic-libのcopy範囲がmemcopy範囲がおかしいのを直した zigにしたけど結局この手の不毛なmemcpyと向き合わなくてはいけない。つらい。 commit: Fix mimic-lib --load supportをbuild scriptに追加 commit: support --load Releaseに向けた…

20240212日報

mimic-cross実装 venvでnativeを呼ぶように セットアップ時にpythonスクリプト中からvnevのpython系統を呼んでおり、 python周りの少しの変更ですぐにtestがfailをおこしてしんどいのであきらめた。 commit: Call native python in venv arm64でamd64向けに…

2024/02/11日報

mimic-cross実装 multiplatform対応 nativeなときはそのままnativeビルドパスを通るようになった。 BUILDARCH=amd64,arm64 かつ TARGETARCH=arm64しか今のところはサポートされてない。 commit: Build for multiplatform commit: Update example colcon buil…

2024/02/10日報

クロスコンパイルビルド用コンテナを作るときにplatform指定 --platform指定するもの、つまりTARGETPLATFORMには将来のBUILDPLATFORMが指定される。 将来のTARGETPLATFORMを指定するものはないので引数指定になる。 mimic-cross実装 gpgまわりの対応 apt-get…

2024/02/09日報

mimic-cross python3 -m pipをサポート した。denoを採用したことによって、targetとhostを並列に処理するのが簡単になって嬉しい。 pythonのテストが遅いのでなんとかしたい commit: Support pip apt-getが環境変数を引き継がないのを修正 pip実装していて…

2024/02/08日報

mimic-cross実装 何も細工せずそのままhostにもapt-getする設定を追加 pythonまわりは細工が必要なくhostにもinstallされていることが大事なパッケージが たくさんあるので、"postInstall": "skip"でそのような処理を通るようにした。 今後もpostInstallの処…

2024/02/06日報

mimic-cross実装 pythonの基本的なパスを実装 platformやsysconfigが偽装された状態で振る舞うようになるとことまでやった。 あとはpip対応をすればpythonのサポートが終わる。 qemu-staticが必要になるのでtonistiigi/binfmtから引っ張ってくるようにした。…

2024/02/05日報

dax_extrasを最新のdaxに追従 最新のdaxはbun shellに影響を受けて結構いろいろなものがサポートされている。 pipeが実装されたのでdax_extrasから削除 stdout($.path)がサポートされたので$`command`.toFileは消そうと思ったが、 fileoptionが指定できると…

2024/02/04日報

Pythonのモジュール検索パスについて整理する The initialization of the sys.path module search path — Python 3.12.1 ドキュメント 読むと._pthを置くとデフォルトパスを上書きできるように思えたが、 実際は._pthで参照するパスが追加される挙動だった。…

2024/02/03日報

configファイルの形式について考える 現在はjsonだが、変更がまぁまぁつらいので見直す。 一部抜粋からChatGPTに比較対象出してもらう { "apt": { "useCustomFunction": true }, "base-files": {}, "fdisk": {}, "git": {}, "gcc-11": { "isCrossTool": true…

2024/02/02日報

mimic-cross実装 mimic-libをzigで書き直す 指定パスにarchitectureを書き込んだファイルを置いておいて、 それをもとにmachineの偽装をするようにした。\ これで同じバイナリをhostにchrootしたときとmimic-cross環境に偽装したとき、 それぞれで適切な振る…

2024/02/01日報

mimic-cross実装 mimic-deployがhost側へ破壊的な変更を加えるようにする 一部のコマンドが相対パスを仕様して動く都合上、 target側はhostへのシンボリックリンクで運用すると実装が楽なことに気づいた。 この変更はDocker imageのサイズ削減も見込めるので…

2024/01/28日報

mimic-cross実装 46個のサポートパッケージ追加 従来のmimic-crossがサポートしているpackageの中で、 単純なdeployで済むもののパッケージを足した。 commit: Suport basically packages パッケージ設定はjson拡張だけで設定できるように拡張 パッケージ拡…

2024/01/27日報

ディストリの/usr mergeについて調べた 最近libとかが/usr/libのsymbolicになってるの何?と思ってたけど、 ちゃんと調べたらそういう動きがちゃんとあった。 TheCaseForTheUsrMerge Unification » Linux Magazine UsrMerge - Debian Wiki Features/UsrMove …

2024/01/24日報

mimic-cross実装 新しいsetupの呼び出しを考える ユーザが持っているイメージをdeployするときになるべく自然な形を目指したい。 旧実装 COPY --from=impactaky/mimic-cross:host-focal / /host RUN mv /host/mimic-cross-target /mimic-cross RUN /mimic-cr…

2024/01/23日報

mimic-cross開発 configにarchとhostArchを追加 archに対する柔軟性を上げるために導入した。 Denoが持っているarchはDeno.build.archでビルド時、 つまり自分自身のarchであり環境のarchは取れない模様。 commit: Add arch and hostArch to config setupの…

2024/01/21日報

mimic-cross実装 suggest機能の実装 mimicx suggest -aとすると自動でmimic対象のパッケージとcommandの一覧を 出力してくれるようにした。 commit: mimicx suggest

2024/01/20日報

mimic-cross実装 現在はpackageに対するmimic化のsuggest機能を実装中 Refactoring 途中だったものの続き。 package周りの処理からaptやdpkgに依存しない部分を切り出した。 commit: Refactoring 自動deloyでld.so.confにあるファイルを含めないようにする …

2024/01/17日報

mimic-cross実装 ld.so.confのparse関数 ライブラリパスを判定するために書いた。 commit: Add parseLdconf refactoring apt.tsにいろんなものが集中してしまっているので、汎用的なものをutilに切り出し作業中。 日付変わる前に終わらないので続きはまた明日

2024/01/16日報

ライブラリの探索パスを知る方法 昨日の結論に基づいて、 実行コマンドかライブラリかの自動判定はパスの情報を使うことにした。 そのため共有ライブラリの解決に使われるパスを取得する必要がでた。 ld.conf.soのparseを書く… ldconfigにdirectory一覧を取…

2024/01/15日報

コマンドと共有ライブラリを判定する mimic-crossの自動インストールでコマンドだけ入れるようにしたい。 が、以外に見分けられなくて困った。 ELFのヘッダ的には差がわからない readelf -hのtypeは両方ともDYN (Shared object file) fileコマンドがなんか判…

2024/01/14日報

mimicx apt-get実装 deployCli mimicx apt-getをapt-getコマンドとして使えるように、 mimicx subcommandを特定パスのコマンドとして展開するための関数を書いた。 deno installなどした場合だとliteralを含む場合がうまく扱えないのでshellにした。 commit:…

2024/01/13日報

mimic-cross dax_extras更新への追従 機能の変更内容 を使うように変更した。 commit: Use $.command commit: Use PathRef mimicx apt-getの実装 とりあえず動くところまで実装したが、現状/usr/bin/apt-getをそのまま直に指定して 呼ばれているスクリプトに…