|
| 1 | +# PKGX Pantry Version Audit Report |
| 2 | + |
| 3 | +**Audit Date:** 2026-03-06 |
| 4 | +**Auditor:** Claude Code (automated) |
| 5 | +**Scope:** ~40 high-impact infrastructure packages |
| 6 | +**Repository:** pkgxdev/pantry (827+ total package domains) |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## Executive Summary |
| 11 | + |
| 12 | +- **40 packages audited** across 7 categories |
| 13 | +- **3 packages explicitly version-blocked** (curl, Node.js, CMake build dep) |
| 14 | +- **5 packages with stale dependency pins** (Terraform, kubectl, Python, Rust, jq) |
| 15 | +- **1 systemic issue:** OpenSSL 1.1 → 3 migration affects curl, Node.js, Python, Ruby |
| 16 | +- **Top 5 actionable updates identified** (see Recommendations section) |
| 17 | + |
| 18 | +--- |
| 19 | + |
| 20 | +## Full Audit Table |
| 21 | + |
| 22 | +### Language Runtimes |
| 23 | + |
| 24 | +| Package | Domain | Version Source | Latest Upstream | Version Blocks | Status | |
| 25 | +|---------|--------|---------------|-----------------|----------------|--------| |
| 26 | +| Node.js | `nodejs.org` | `github: nodejs/node/tags` | v25.8.0 | `openssl.org: 1.1` hard pin | ⚠️ DEPENDENCY BLOCKER | |
| 27 | +| Python | `python.org` | `github: python/cpython/tags` | 3.14.3 | `zlib.net: =1.3.1`, `tcl-lang.org: =8.6.16` | ⚠️ STALE PINS | |
| 28 | +| Go | `go.dev` | `github: golang/go/tags` | 1.26.0 | None | ✅ CURRENT | |
| 29 | +| Ruby | `ruby-lang.org` | `github: ruby/ruby/tags` | 4.0.1 | `openssl.org: ^1.1` | ⚠️ LATENT RISK | |
| 30 | +| Rust | `rust-lang.org` | `github: rust-lang/rust` | 1.94.0 | Build: `python.org: '>=3<3.12'` | ⚠️ STALE BUILD DEP | |
| 31 | +| OpenJDK | `openjdk.org` | Multiple JDK repos | 21.0.11+5 (LTS) | None | ✅ CURRENT | |
| 32 | +| Deno | `deno.land` | `github: denoland/deno` | 2.7.4 | None | ✅ CURRENT | |
| 33 | +| Bun | `bun.sh` | `github: oven-sh/bun` | 1.3.10 | None (vendored binary) | ✅ CURRENT | |
| 34 | + |
| 35 | +### Build Tools |
| 36 | + |
| 37 | +| Package | Domain | Version Source | Latest Upstream | Version Blocks | Status | |
| 38 | +|---------|--------|---------------|-----------------|----------------|--------| |
| 39 | +| CMake | `cmake.org` | `github: Kitware/CMake/releases/tags` | 4.2.3 | Build dep: `curl.se: ">=5<8.13"` | ⚠️ STALE BUILD DEP | |
| 40 | +| Meson | `mesonbuild.com` | `github: mesonbuild/meson/tags` | 1.10.1 | None | ✅ CURRENT | |
| 41 | +| Ninja | `ninja-build.org` | `github: ninja-build/ninja` | 1.13.2 | None | ✅ CURRENT | |
| 42 | +| GNU Make | `gnu.org/make` | FTP scrape | N/A (FTP) | None | ✅ CURRENT | |
| 43 | +| Autoconf | `gnu.org/autoconf` | FTP scrape | N/A (FTP) | None | ✅ CURRENT | |
| 44 | +| Automake | `gnu.org/automake` | FTP scrape | N/A (FTP) | None | ✅ CURRENT | |
| 45 | + |
| 46 | +### Core Libraries |
| 47 | + |
| 48 | +| Package | Domain | Version Source | Latest Upstream | Version Blocks | Status | |
| 49 | +|---------|--------|---------------|-----------------|----------------|--------| |
| 50 | +| OpenSSL | `openssl.org` | `github: openssl/openssl` | 3.6.1 | None (both 1.x and 3.x available) | ✅ CURRENT | |
| 51 | +| zlib | `zlib.net` | `github: madler/zlib` | 1.3.2 | None | ✅ CURRENT | |
| 52 | +| libffi | `sourceware.org/libffi` | `github: libffi/libffi/tags` | 3.5.2 | None | ✅ CURRENT | |
| 53 | +| SQLite | `sqlite.org` | `github: sqlite/sqlite/tags` | 3.51.2 | Year-based URL pattern (manual update) | ✅ CURRENT | |
| 54 | +| ICU | `unicode.org` | `github: unicode-org/icu/releases` | 78.2 | None | ✅ CURRENT | |
| 55 | + |
| 56 | +### CLI / Developer Tools |
| 57 | + |
| 58 | +| Package | Domain | Version Source | Latest Upstream | Version Blocks | Status | |
| 59 | +|---------|--------|---------------|-----------------|----------------|--------| |
| 60 | +| Git | `git-scm.org` | `github: git/git/tags` | 2.53.0 | None | ✅ CURRENT | |
| 61 | +| curl | `curl.se` | `github: curl/curl/releases` | 8.18.0 | **BLOCKED**: ignores 8.18+, 8.2x, 9.x | ❌ BLOCKED | |
| 62 | +| wget | `gnu.org/wget` | FTP scrape | N/A (FTP) | None | ✅ CURRENT | |
| 63 | +| jq | `stedolan.github.io/jq` | `github: stedolan/jq/releases` | 1.8.1 (via jqlang/jq) | **Wrong upstream repo** (archived) | ⚠️ STALE UPSTREAM | |
| 64 | +| ripgrep | `crates.io/ripgrep` | `github: BurntSushi/ripgrep/tags` | 15.1.0 | None | ✅ CURRENT | |
| 65 | +| fd | `crates.io/fd-find` | `github: sharkdp/fd/tags` | 10.3.0 | None | ✅ CURRENT | |
| 66 | +| fzf | `github.com/junegunn/fzf` | `github: junegunn/fzf` | 0.70.0 | None | ✅ CURRENT | |
| 67 | +| GitHub CLI | `cli.github.com` | `github: cli/cli/tags` | 2.87.3 | Pre-releases filtered (correct) | ✅ CURRENT | |
| 68 | + |
| 69 | +### Databases |
| 70 | + |
| 71 | +| Package | Domain | Version Source | Latest Upstream | Version Blocks | Status | |
| 72 | +|---------|--------|---------------|-----------------|----------------|--------| |
| 73 | +| PostgreSQL | `postgresql.org` | FTP scrape | N/A (FTP) | None | ✅ CURRENT | |
| 74 | +| Redis | `redis.io` | `github: redis/redis` | 8.6.1 | None | ✅ CURRENT | |
| 75 | +| MySQL | `mysql.com` | `github: mysql/mysql-server/tags` | 9.6.0 / 8.4.8 LTS | None | ✅ CURRENT | |
| 76 | +| MariaDB | `mariadb.com/server` | `github: MariaDB/server/tags` | 12.2.2 / 11.4.10 LTS | Platform restrictions | ✅ CURRENT | |
| 77 | + |
| 78 | +### DevOps / Infrastructure |
| 79 | + |
| 80 | +| Package | Domain | Version Source | Latest Upstream | Version Blocks | Status | |
| 81 | +|---------|--------|---------------|-----------------|----------------|--------| |
| 82 | +| Docker CLI | `docker.com/cli` | `github: docker/cli/tags` | 29.3.0 | None | ✅ CURRENT | |
| 83 | +| Terraform | `terraform.io` | `github: hashicorp/terraform` | 1.14.6 | Build: `go.dev: ~1.24.1` | ⚠️ STALE BUILD DEP | |
| 84 | +| kubectl | `kubernetes.io/kubectl` | `github: kubernetes/kubernetes` | 1.35.2 | Build: `go.dev: ~1.24.4` | ⚠️ STALE BUILD DEP | |
| 85 | +| Helm | `helm.sh` | `github: helm/helm/releases/tags` | 4.1.1 | None | ✅ CURRENT | |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## Systemic Issue: OpenSSL 1.1 → 3 Migration |
| 90 | + |
| 91 | +The most significant finding is the OpenSSL 1.1 dependency that locks multiple packages: |
| 92 | + |
| 93 | +| Package | OpenSSL Dep | Impact | |
| 94 | +|---------|------------|--------| |
| 95 | +| curl.se | `^1.1` | Blocks curl 8.18+ entirely | |
| 96 | +| nodejs.org | `1.1` (hard pin) | Node 22+ LTS needs OpenSSL 3 | |
| 97 | +| python.org | `^1.1` | Python 3.x works but prefers OpenSSL 3 | |
| 98 | +| ruby-lang.org | `^1.1` | Ruby 3.4+ prefers OpenSSL 3 | |
| 99 | + |
| 100 | +**Recommendation:** Plan a coordinated OpenSSL 3 migration as a separate initiative. This is too large for a single PR but is the highest-priority systemic improvement. |
| 101 | + |
| 102 | +--- |
| 103 | + |
| 104 | +## Recommendations — Top 5 Actionable Updates |
| 105 | + |
| 106 | +1. **jq**: Migrate upstream from archived `stedolan/jq` to active `jqlang/jq` |
| 107 | +2. **Terraform**: Update Go build dependency pin from `~1.24.1` |
| 108 | +3. **kubectl**: Update Go build dependency pin from `~1.24.4` |
| 109 | +4. **Python**: Update zlib dependency pin from `=1.3.1` to `=1.3.2` |
| 110 | +5. **Rust**: Relax Python build dependency from `<3.12` to `<3.15` |
| 111 | + |
| 112 | +--- |
| 113 | + |
| 114 | +## Status Legend |
| 115 | + |
| 116 | +| Symbol | Meaning | |
| 117 | +|--------|---------| |
| 118 | +| ✅ CURRENT | Auto-discovers latest versions, no blocks | |
| 119 | +| ⚠️ STALE PINS | Has outdated dependency pins that should be updated | |
| 120 | +| ⚠️ STALE UPSTREAM | Tracks wrong/archived upstream source | |
| 121 | +| ⚠️ DEPENDENCY BLOCKER | Dependency pin prevents building latest versions | |
| 122 | +| ⚠️ LATENT RISK | Works now but dependency will become a problem | |
| 123 | +| ❌ BLOCKED | Explicitly cannot get latest version | |
0 commit comments