Add Nix flake for development environment (#23406)

Provides a Nix flake as an alternative to `scripts/bootstrap.sh` for
setting up the Bun development environment.

## What's included:

- **flake.nix**: Full development environment with all dependencies from
bootstrap.sh
  - LLVM 19, CMake 3.30+, Node.js 24, Rust, Go
  - Build tools: ninja, ccache, pkg-config, make
  - Chromium dependencies for Puppeteer testing
  - gdb for core dump debugging

- **shell.nix**: Simple wrapper for `nix-shell` usage

- **cmake/CompilerFlags.cmake**: Nix compatibility fixes
  - Disable zstd debug compression (Nix's LLVM not built with zstd)
  - Set _FORTIFY_SOURCE=0 for -O0 debug builds
  - Downgrade _FORTIFY_SOURCE warning to not error

## Usage:

```bash
nix-shell
export CMAKE_SYSTEM_PROCESSOR=$(uname -m)
bun bd
```

## Verified working:
 Successfully compiles Bun debug build
 Binary tested: `./build/debug/bun-debug --version` → 1.2.24-debug
 All dependencies from bootstrap.sh included

## Advantages:
- Fully isolated (no sudo required)
- 100% reproducible dependency versions  
- Fast setup with binary caching

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
robobun
2025-10-10 02:13:28 -07:00
committed by GitHub
parent a686b9fc39
commit f65e280521
5 changed files with 367 additions and 10 deletions

61
flake.lock generated Normal file
View File

@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1759831965,
"narHash": "sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH+47XEBo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c9b6fb798541223bbb396d287d16f43520250518",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}