Skip to content

DEMO-04: Ship a complete developer image with compiler, SDK, and 8.3-safe assets #768

Description

@rwrife

Outcome

A clean normal developer-image build contains everything needed to compile the demo applications without host file injection or optional preexisting artifacts.

Evidence and scope

Assessment baseline: e026af0. Normal app enumeration omits cc. Developer staging lacks required public API/runtime assets and conditionally stages selected archives. The kernel and image writer both enforce 8.3 filenames, making names such as secureos_api.h, libsofpack.a, and hello.bin.manifest.json invalid.

  • Add the real cc build and staging to the developer image.
  • Stage a complete, explicitly enumerated set of API/ABI headers, standard headers needed by supported samples, libos/startup support, clib, compiler runtime archives, and required packaging dependencies.
  • Apply DEMO-03's naming contract consistently to includes, internal header dependencies, archive search, sidecars, and documentation.
  • Make missing required developer assets a build failure rather than silently skipping them.
  • Include small console and graphical source samples plus concise in-guest authoring/build/run instructions; samples must use only the shipped SDK.
  • Bundle existing TinyCC LGPL compliance artifacts when distributing the compiler-containing image.

Acceptance criteria

  • A clean build produces boot and writable disk artifacts containing every required developer asset.
  • Every staged path is legal and accessible through the guest filesystem.
  • Removing a required compiler/runtime artifact causes a clear build failure.
  • Both samples compile using only files supplied by the image and source changes made in the guest.
  • Documentation uses working command paths and the actual shell, not a nonexistent sosh REPL.

References

  • build/scripts/build.sh:41-70
  • build/scripts/build_disk_image.sh:123-161
  • tools/populate_disk_image.py:115-146
  • kernel/fs/fs_service.c:190-233
  • docs/legal/lgpl-compliance.md

Dependencies

#766, #767

Replaced backlog

Supersedes or consolidates scope from #531, #613, #540, #584, #396. Old issues are being closed as superseded, not as completed.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions