)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"ecc88571fe0823e56015ff917c75b00a9edf7330","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4771a9d2_eeecdbcd","updated":"2023-02-24 19:37:11.000000000","message":"Oops, the automatic un-WIP-ing got me again.","commit_id":"147ec84832be20de2bd13c2301236d7556a5572d"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a6a095d960b04edf874dd4e95d5dfe8b1b0de097","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"157ef059_0b4d8be8","updated":"2023-03-02 15:00:55.000000000","message":"works.","commit_id":"2c1d6869d2ecb320d8ac205032fe358427746448"}],"tools/bazel":[{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"1d4af1277a792c08da947c1ab9a97299d1dd025e","unresolved":true,"context_lines":[{"line_number":138,"context_line":"# Autogenerated by tools/bazel. Manual changes can result in stale caches."},{"line_number":139,"context_line":"# Modify the generator instead."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"# Enable hard mode by only mounting things explicitly requested. In return, we"},{"line_number":142,"context_line":"# get better host OS compatibility and better hermeticity."},{"line_number":143,"context_line":"build --experimental_use_hermetic_linux_sandbox"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# Mount directories from the generated Fedora sandbox root."},{"line_number":146,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/etc:/etc"},{"line_number":147,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/usr:/usr"}],"source_content_type":"text/x-python","patch_set":2,"id":"2a8c920f_36c4980a","line":144,"range":{"start_line":141,"start_character":0,"end_line":144,"end_character":0},"updated":"2023-02-24 19:36:59.000000000","message":"I\u0027d put this in .bazelrc at the top along with all the other sandbox-specific config","commit_id":"147ec84832be20de2bd13c2301236d7556a5572d"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"334e21a71cfa1002eb320845e3416d32e8bc44f0","unresolved":false,"context_lines":[{"line_number":138,"context_line":"# Autogenerated by tools/bazel. Manual changes can result in stale caches."},{"line_number":139,"context_line":"# Modify the generator instead."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"# Enable hard mode by only mounting things explicitly requested. In return, we"},{"line_number":142,"context_line":"# get better host OS compatibility and better hermeticity."},{"line_number":143,"context_line":"build --experimental_use_hermetic_linux_sandbox"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"# Mount directories from the generated Fedora sandbox root."},{"line_number":146,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/etc:/etc"},{"line_number":147,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/usr:/usr"}],"source_content_type":"text/x-python","patch_set":2,"id":"83d8604d_34279d2b","line":144,"range":{"start_line":141,"start_character":0,"end_line":144,"end_character":0},"in_reply_to":"2a8c920f_36c4980a","updated":"2023-03-02 13:46:26.000000000","message":"Done","commit_id":"147ec84832be20de2bd13c2301236d7556a5572d"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"0ab73f82ea79d0aeaa613334aaade12b0603cd8d","unresolved":true,"context_lines":[{"line_number":154,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/sbin:/sbin"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"# Needed for the Go SDK shipped by rules_go to resolve its own GOROOT via /proc/self/exe."},{"line_number":157,"context_line":"build --sandbox_add_mount_pair\u003d/proc:/proc"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"# Needed for python\u0027s multiprocessing lock implementation"},{"line_number":160,"context_line":"# (_multiprocessing.SemLock for eg. mp.Queue), as used in EDK2\u0027s build system."}],"source_content_type":"text/x-python","patch_set":2,"id":"2a4f4b3d_e949cf00","line":157,"range":{"start_line":157,"start_character":31,"end_line":157,"end_character":42},"updated":"2023-02-23 18:16:56.000000000","message":"You can specify just `/proc`, the target is redundant.\n\nLooks like we need `/dev/kvm` too?","commit_id":"147ec84832be20de2bd13c2301236d7556a5572d"},{"author":{"_account_id":1000002,"name":"Serge Bazanski","display_name":"Serge","email":"serge@monogon.tech","username":"serge","avatars":[{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/52c41428b6369f2c02b9717425216f7d.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"334e21a71cfa1002eb320845e3416d32e8bc44f0","unresolved":false,"context_lines":[{"line_number":154,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/sbin:/sbin"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"# Needed for the Go SDK shipped by rules_go to resolve its own GOROOT via /proc/self/exe."},{"line_number":157,"context_line":"build --sandbox_add_mount_pair\u003d/proc:/proc"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"# Needed for python\u0027s multiprocessing lock implementation"},{"line_number":160,"context_line":"# (_multiprocessing.SemLock for eg. mp.Queue), as used in EDK2\u0027s build system."}],"source_content_type":"text/x-python","patch_set":2,"id":"d91a9055_210d16f5","line":157,"range":{"start_line":157,"start_character":31,"end_line":157,"end_character":42},"in_reply_to":"2a4f4b3d_e949cf00","updated":"2023-03-02 13:46:26.000000000","message":"Done","commit_id":"147ec84832be20de2bd13c2301236d7556a5572d"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"3ed9373722f09fa5dad5efa8432243de48a77f63","unresolved":true,"context_lines":[{"line_number":128,"context_line":"  # We need the host\u0027s resolv.conf for some E2E tests which require internet access."},{"line_number":129,"context_line":"  cp /etc/resolv.conf \"${ROOT}/.bazeldnf/sandbox/default/root/etc/resolv.conf\""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  # If we have this set (to eg. /run/user/1000) we need to make sure that the"},{"line_number":132,"context_line":"  # Bazel sandbox can bindmount it in actions. Seems to be necessary on NixOS."},{"line_number":133,"context_line":"  if [ ! -z \"${TMPDIR:-}\" ]; then"},{"line_number":134,"context_line":"    mkdir -p ${ROOT}/.bazeldnf/sandbox/default/root$TMPDIR"},{"line_number":135,"context_line":"  fi"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"  cat \u003e \"${DIR}/../.bazelrc.sandbox\" \u003c\u003cEOF"},{"line_number":138,"context_line":"# Autogenerated by tools/bazel. Manual changes can result in stale caches."},{"line_number":139,"context_line":"# Modify the generator instead."}],"source_content_type":"text/x-python","patch_set":3,"id":"9f8a4b97_39c9824d","line":136,"range":{"start_line":131,"start_character":0,"end_line":136,"end_character":0},"updated":"2023-03-02 14:38:51.000000000","message":"Can we set this to a deterministic path?","commit_id":"2c1d6869d2ecb320d8ac205032fe358427746448"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"7fdd7919e4574853509333b904ef9413e9daad20","unresolved":true,"context_lines":[{"line_number":149,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/bin:/bin"},{"line_number":150,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/sbin:/sbin"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"# Needed for the Go SDK shipped by rules_go to resolve its own GOROOT via /proc/self/exe."},{"line_number":153,"context_line":"build --sandbox_add_mount_pair\u003d/proc"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# Needed for python\u0027s multiprocessing lock implementation"},{"line_number":156,"context_line":"# (_multiprocessing.SemLock for eg. mp.Queue), as used in EDK2\u0027s build system."},{"line_number":157,"context_line":"build --sandbox_add_mount_pair\u003d/dev/shm"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"# Needed for qemu for tests."},{"line_number":160,"context_line":"build --sandbox_add_mount_pair\u003d/dev/kvm"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"# Hardwire all action envs to just use /usr/bin from the above sandbox. This is"},{"line_number":163,"context_line":"# necessary on NixOS bazel builds, as they really like to inject /nix/store/*"},{"line_number":164,"context_line":"# paths otherwise. We also explicitly set it to /usr/bin only (no /bin) as"},{"line_number":165,"context_line":"# otherwise calling gcc from /bin/gcc breaks its own resolution of subordinate"},{"line_number":166,"context_line":"# commands (like cc1, as, etc.)."},{"line_number":167,"context_line":"build --action_env\u003dPATH\u003d/usr/bin"},{"line_number":168,"context_line":"build --host_action_env\u003dPATH\u003d/usr/bin"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# Make all shell run actions use /bin/bash instead of whatever the host might"},{"line_number":171,"context_line":"# have set. Again, looking at you, bazel-on-NixOS."},{"line_number":172,"context_line":"build --shell_executable\u003d/bin/bash"},{"line_number":173,"context_line":"EOF"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  echo \"Done regenerating sysroot.\" \u003e\u00262"},{"line_number":176,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"804d8081_8aabe235","line":173,"range":{"start_line":152,"start_character":0,"end_line":173,"end_character":0},"updated":"2023-03-02 14:09:46.000000000","message":"These aren\u0027t variable - why not put all of them into .bazelrc?","commit_id":"2c1d6869d2ecb320d8ac205032fe358427746448"},{"author":{"_account_id":1000000,"name":"Leopold Schabel","display_name":"Leo","email":"leo@monogon.tech","username":"leo","avatars":[{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/98f8f79a6bb45adef37defa7ead8f3d2.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"3ed9373722f09fa5dad5efa8432243de48a77f63","unresolved":true,"context_lines":[{"line_number":149,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/bin:/bin"},{"line_number":150,"context_line":"build --sandbox_add_mount_pair\u003d${ROOT}/.bazeldnf/sandbox/default/root/sbin:/sbin"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"# Needed for the Go SDK shipped by rules_go to resolve its own GOROOT via /proc/self/exe."},{"line_number":153,"context_line":"build --sandbox_add_mount_pair\u003d/proc"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"# Needed for python\u0027s multiprocessing lock implementation"},{"line_number":156,"context_line":"# (_multiprocessing.SemLock for eg. mp.Queue), as used in EDK2\u0027s build system."},{"line_number":157,"context_line":"build --sandbox_add_mount_pair\u003d/dev/shm"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"# Needed for qemu for tests."},{"line_number":160,"context_line":"build --sandbox_add_mount_pair\u003d/dev/kvm"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"# Hardwire all action envs to just use /usr/bin from the above sandbox. This is"},{"line_number":163,"context_line":"# necessary on NixOS bazel builds, as they really like to inject /nix/store/*"},{"line_number":164,"context_line":"# paths otherwise. We also explicitly set it to /usr/bin only (no /bin) as"},{"line_number":165,"context_line":"# otherwise calling gcc from /bin/gcc breaks its own resolution of subordinate"},{"line_number":166,"context_line":"# commands (like cc1, as, etc.)."},{"line_number":167,"context_line":"build --action_env\u003dPATH\u003d/usr/bin"},{"line_number":168,"context_line":"build --host_action_env\u003dPATH\u003d/usr/bin"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# Make all shell run actions use /bin/bash instead of whatever the host might"},{"line_number":171,"context_line":"# have set. Again, looking at you, bazel-on-NixOS."},{"line_number":172,"context_line":"build --shell_executable\u003d/bin/bash"},{"line_number":173,"context_line":"EOF"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  echo \"Done regenerating sysroot.\" \u003e\u00262"},{"line_number":176,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"54109ae3_915b5eb8","line":173,"range":{"start_line":152,"start_character":0,"end_line":173,"end_character":0},"in_reply_to":"804d8081_8aabe235","updated":"2023-03-02 14:38:51.000000000","message":"It makes sense to keep `--sandbox_add_mount_pair` here so it invalidates the build when it changes. The action envs and --shell_executable should already cause invalidation on their own, I think?","commit_id":"2c1d6869d2ecb320d8ac205032fe358427746448"}]}
