create-freebsd-dev-env

Provisions a QEMU/KVM FreeBSD VM matching ponyc tier-3 CI for building and testing ponyc.

6.2k|438|Updated Nov 13, 2012
One-click install
npx skills add https://github.com/ponylang/ponyc --skill create-freebsd-dev-env
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: create-freebsd-dev-env
Source: https://github.com/ponylang/ponyc/tree/main/.claude/skills/create-freebsd-dev-env
Command: npx skills add https://github.com/ponylang/ponyc --skill create-freebsd-dev-env

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Reproducing FreeBSD-specific ponyc bugs is hard without a matching environment: the tier-3 CI job exercises paths (embedded-LLD static linking, sanitizer links, dtrace providers, base libc++/libunwind) that Linux clang jobs never touch, and hand-rolling a FreeBSD VM hits pitfalls like cloud-init seed setup, root bootstrap via expect, and missing bash in the base system.

Core Features & Use Cases

  • CI-matched VM provisioning: Downloads the FreeBSD BASIC-CLOUDINIT image, builds a cloud-init seed with your SSH key, and boots a daemonized QEMU/KVM (or HVF on macOS) VM matching the ponyc tier-3 CI configuration.
  • One-time root bootstrap: Uses expect to drive su and install build dependencies (cmake, gmake, libunwind, doas) with passwordless doas for the freebsd user.
  • Build and test workflow: Rsyncs your ponyc checkout into the VM, runs the multi-hour detached LLVM libs build, then builds and tests ponyc with CMake presets and ctest.
  • Use Case: A contributor hits a FreeBSD-only link failure in CI. They use this Skill to stand up a local FreeBSD 15.1 VM, rsync their fix branch, rebuild, and run the ci-core test suite plus the sanitizer and dtrace smoke scripts to validate the fix before pushing.

Quick Start

Ask the AI to set up a local FreeBSD VM matching ponyc tier-3 CI so you can reproduce and debug a FreeBSD-specific ponyc build issue.

Frequently Asked Questions about create-freebsd-dev-env

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up a FreeBSD VM to build and test ponyc locally?

Download the FreeBSD BASIC-CLOUDINIT qcow2 image, create a cloud-init seed with your SSH key, and boot it with QEMU using KVM or HVF acceleration. Then run a one-time expect-based root bootstrap to install cmake, gmake, libunwind, and doas, rsync your ponyc checkout in, and build with CMake presets.

How do I reproduce a FreeBSD-specific ponyc CI failure locally?

Stand up a FreeBSD VM matching the tier-3 CI job (currently FreeBSD 15.1), rsync your ponyc source, run the detached libs build, then build and run ctest with the ci-core label. For full CI parity, also run the freebsd-sanitizer-smoke.sh and freebsd-dtrace-smoke.sh scripts.

Does this FreeBSD VM setup work on macOS hosts?

Yes, the guest-side steps are OS-agnostic. On macOS the QEMU boot uses the HVF accelerator via accel=kvm:hvf, which selects KVM on Linux or HVF on macOS and errors if neither is available rather than falling back to slow TCG emulation.

Why does SSH to the FreeBSD VM time out on first boot?

The first boot runs nuageinit to install your SSH key and growfs to resize the root filesystem, so SSH is not immediately available. Poll for up to about five minutes; if it never comes up, check the QEMU process is alive and re-boot with a serial console log to diagnose.

When should I use the DragonFly or OpenBSD skill instead of FreeBSD?

Use the DragonFly skill for gcc-specific ponyc issues, since FreeBSD's base compiler is clang. Use the OpenBSD skill when you need static-PIE static-link checks or the OpenBSD CI environment; each BSD has its own dedicated skill matching its CI provision script.