cargo builds can corrupt consumer git repos due to env vars
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 82/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- git, rust
- Lĩnh vực
- build-system
Hướng nghiên cứu
Bắt đầu trong boring-sys/build/main.rs, tập trung vào hai vị trí gọi git và việc sử dụng hiện có của git rev-parse --local-env-vars. Kiểm tra cách buildscript gọi git khi Cargo chạy từ một hook hoặc worktree. Hoàn thành khi các lần gọi đó không còn kế thừa các biến môi trường Git có thể ảnh hưởng đến repository của consumer.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
The buildscript in boring-sys/build/main.rs calls out to git to set up the BoringSSL sources. When a project using this crate runs cargo from a git hook, git has already set variables like GIT_DIR for the hook. The buildscript here doesn't sanitize those variables, so git init re-initializes the consumer's repo, rather than the BoringSSL repo the buildscript intended.
Normally that's harmless, but when the build is running from a worktree rather than the main checkout, a surprising git interaction causes it to write core.bare = true into the main checkout's config, breaking most git commands in that main checkout until the config is fixed. Unexpected behaviour from git, for sure, but definitely not something we want to trigger from our build.
Proposed fix
Before invoking git in boring-sys/build/main.rs (2 call sites), strip env vars that would alter git's behaviour. git rev-parse --local-env-vars prints a list of those vars; for me, it gives:
GIT_ALTERNATE_OBJECT_DIRECTORIES
GIT_CONFIG
GIT_CONFIG_PARAMETERS
GIT_CONFIG_COUNT
GIT_OBJECT_DIRECTORY
GIT_DIR
GIT_WORK_TREE
GIT_IMPLICIT_WORK_TREE
GIT_GRAFT_FILE
GIT_INDEX_FILE
GIT_NO_REPLACE_OBJECTS
GIT_REPLACE_REF_BASE
GIT_PREFIX
GIT_SHALLOW_FILE
GIT_COMMON_DIR
- Ngôn ngữ chính
- Rust
- Star
- 526
- Fork
- 178
- Merge trung bình
- 16 giờ 47 phút
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của cloudflare/boring
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
cloudflare/boring#526 ·
-
SLH-DSA supportCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
cloudflare/boring#522 ·
-
Build failure on 32 bit freebsdĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
cloudflare/boring#517 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
cloudflare/boring#500 · 2 bình luận ·
-
v4 -> v5 upgrade pathĐang mởv5
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
cloudflare/boring#442 · 1 bình luận · 2 reaction ·
Tất cả issue của cloudflare/boring
Issue tương tự
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsCó thể đã có người làm @roboomp đã nhận hôm nay. Đang mởbug prio:p2 providers triaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
can1357/oh-my-pi#15798 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
requires-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/datafusion-comet#7001 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
-
builtin-port enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
cmlarsen/writemorebetter#235 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add a Storybook section to CONTRIBUTING.mdCó thể đã có người làm @ChanakyaG2004 đã nhận hôm nay. Đang mởdocumentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
FlowwStar/FlowStar#995 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày