Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

meson: Improve buildinfo.h generation #967

Merged
merged 2 commits into from Apr 30, 2022

Conversation

ma8ma
Copy link
Collaborator

@ma8ma ma8ma commented Apr 30, 2022

meson: Improve buildinfo.h generation to avoid repo ownership issue

mesonのgitコミット情報の生成処理を更新します。

ユーザーが所有してないgitリポジトリでコミット情報の取得に失敗したときは既存のbuildinfo.hを利用してビルドを続行します。
このとき既存のヘッダーが無ければビルドが中断されます。
合わせてエラーメッセージやログのコンソール出力を追加します。
また、README.mdに概要と回避策を追加します。

背景

CVE-2022-24765 の対策が導入されたgitを使うとユーザーが所有してないリポジトリは操作が拒否されるようになりました。

JDimのビルドは毎回コミット情報を取得しているためroot権限が必要な場所へインストールするときgitに失敗して情報が消去されることがありました。
sudoをつけて実行するとコミット情報が消失するのはユーザーの直感に反する動作であるためヘッダー再利用やビルド中断を導入します。

meson: Prevent buildinfo.h update if hash not changed

buildinfo.hを生成するとき内容をハッシュ計算して既存のものと値が同じならファイルを更新しません。これにより再ビルドのステップが短縮されることがあります。ハッシュ計算プログラムが見つからないときは従来のように毎回更新されます。さらにヘッダーファイルの更新状況をコンソールに出力します。

関連のissue: #965

mesonのgitコミット情報の生成処理を更新します。

ユーザーが所有してないgitリポジトリでコミット情報の取得に
失敗したときは既存の`buildinfo.h`を利用してビルドを続行します。
このとき既存のヘッダーが無ければビルドが中断されます。
合わせてエラーメッセージやログのコンソール出力を追加します。
また、README.mdに概要と回避策を追加します。

背景
CVE-2022-24765 の対策が導入されたgitを使うとユーザーが所有してない
リポジトリは操作が拒否されるようになりました。

JDimのビルドは毎回コミット情報を取得しているためroot権限が必要な場所へ
インストールするときgitに失敗して情報が消去されることがありました。
sudoをつけて実行するとコミット情報が消失するのはユーザーの直感に反する
動作であるためヘッダー再利用やビルド中断を導入します。
`buildinfo.h`を生成するとき内容をハッシュ計算して既存のものと
値が同じならファイルを更新しません。これにより再ビルドのステップが
短縮されることがあります。ハッシュ計算プログラムが見つからないときは
従来のように毎回更新されます。さらにヘッダーファイルの更新状況を
コンソールに出力します。
@ma8ma ma8ma added bug バグの追跡 build ビルドに関するトピック labels Apr 30, 2022
@ma8ma ma8ma merged commit 3ff9000 into JDimproved:master Apr 30, 2022
@ma8ma ma8ma deleted the meson-improve-buildinfo_h-generation branch April 30, 2022 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug バグの追跡 build ビルドに関するトピック
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

sudo meson install するとバージョンのgitコミット情報が消える
1 participant