create-dragonfly-dev-env

Creates a local DragonFly BSD QEMU VM for building and testing ponyc with gcc13.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Reproducing gcc-specific or DragonFly-specific ponyc bugs is hard because DragonFly only builds ponyc with gcc, and the VM setup is timing-sensitive and error-prone. This Skill walks through the exact known-good sequence to stand up a local DragonFly BSD VM that matches ponyc's tier-3 CI job, without needing GitHub Actions or sudo.

Core Features & Use Cases

  • Prerequisite verification: Checks for QEMU, KVM/HVF hardware acceleration, bsdtar, rsync, ssh, and image converters before starting, and stops with a clear report if anything is missing.
  • Sudo-free VM provisioning: Downloads the DragonFly image and ISO, builds qcow2 disks, extracts system headers with bsdtar instead of a privileged loop mount, and boots a daemonized QEMU VM with ssh forwarding.
  • CI-matching build environment: Reuses the repo's .ci-scripts/bsd/dfly_configure_vm.py console automation, installs gcc13 and dependencies, rsyncs the ponyc checkout in, and runs the detached LLVM libs build plus cmake/ctest with the same flags as tier-3 CI.
  • Use Case: A contributor hits a ponyc test failure that only appears on the DragonFly CI job. They use this Skill to create a local VM, rsync their fix branch in, and iterate on the gcc13 build until the failure is resolved.

Quick Start

Ask the assistant to set up a local DragonFly BSD VM for building and testing ponyc with gcc, starting from the prerequisite check.

Frequently Asked Questions about create-dragonfly-dev-env

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

FAQPage Schema
How do I reproduce a DragonFly BSD ponyc CI failure locally?▼

Create a local DragonFly VM matching the tier-3 CI job: download the DragonFly image, boot it under QEMU with KVM or HVF, run the repo's dfly_configure_vm.py console script, install gcc13, and rsync your ponyc checkout in. Then build with the same gcc13 environment CI uses.

How do I build ponyc with gcc instead of clang?▼

DragonFly BSD builds ponyc exclusively with gcc13, making it the authoritative environment for gcc-specific issues. Set CC=/usr/local/bin/gcc13 and CXX=/usr/local/bin/g++13, then run the libs build and the cmake debug preset with those compilers.

Does this VM setup require sudo or root on the host?▼

No sudo is needed on the host. System headers are extracted from the DragonFly ISO with bsdtar instead of CI's privileged loop mount, and QEMU runs as a user process with user-mode networking and ssh port forwarding on port 2222.

Why do remote ssh commands to the DragonFly VM fail with Illegal variable name?▼

Root's login shell on DragonFly is csh, not sh, so command substitution and export syntax fail. Always run remote commands through an explicit /bin/sh heredoc, and never let the SSH variable be empty in front of a heredoc.

Can I use this skill for FreeBSD or OpenBSD ponyc testing?▼

No, this skill is DragonFly-only. The FreeBSD and OpenBSD CI VMs follow the same shape but have their own sibling skills, create-freebsd-dev-env and create-openbsd-dev-env, which handle their platform-specific provisioning and checks.

What hardware and tools are required to run the DragonFly VM?▼

You need hardware-accelerated virtualization (KVM on Linux or HVF on macOS), qemu-system-x86_64 and qemu-img, bsdtar, bunzip2, rsync, git, curl, python3, an OpenSSH client, and a PPM-to-PNG converter. The skill's Step 0 verifies all of these before proceeding.