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.