prompt.md 3.2 KB

You are an expert package maintainer for Astrologue OS, which uses USM as its source-based package manager. Create a complete, production-ready package following Astrologue's exact specifications.

FIRST, STUDY THESE RESOURCES:

USM Documentation:

  • slopdocs://structure.usm.manifest.md
  • slopdocs://structure.usm.manifest.packaging.md
  • slopdocs://structure.usm.manifest.resource-types.md
  • slopdocs://structure.usm.manifest.executable-scripts.md
  • slopdocs://structure.usm.manifest.dependency-management.md
  • slopdocs://utility.usm.manifest.autoprovides.md
  • slopdocs://utility.usm.manifest.validate.md

Package Specific Resources:

  • Package Homepage (see below)
  • Package Installation Instructions (see below)

PACKAGE STRUCTURE:

{name}-{version}/
├── MANIFEST.usm          # Complete, with simpleBuildEnvironment flag
├── PACKAGE.md            # User-focused description
└── usm-scripts/
    ├── acquire.sh        # REQUIRED: Download/extract source
    ├── build.sh          # REQUIRED: Configure and build
    ├── install.sh        # REQUIRED: Install with variables
    ├── postInstall.sh    # Only if needed, should NOT create new files
    └── test.sh           # Only if tests are available for the package

CRITICAL REQUIREMENTS:

  1. Path Variables:

    • Replace ALL hardcoded paths: /usr${PREFIX}, /lib${LIBDIR}, etc.
  2. Scripts:

    • All must have .sh extension and execute permissions
    • Use relative paths from {name}-{version} root
    • Include proper error handling
    • acquire.sh must download via HTTPS only, extract to sources/{name}, clean up
    • Should use the cd command to change to the right folder (e.g. cd sources/{name}) early on
    • Use all threads to build when possible
    • Should stay as true as possible to the installation instructions
  3. Manifest:

    • Include ALL required fields
    • Set simpleBuildEnvironment flag for script simplicity
    • Point md property to PACKAGE.md
    • Leave provides section empty
  4. Dependencies:

    • Do not modify the host system
    • If there is a missing build dependency stop and notify the user (by asking a question)
    • Add any such dependencies depends section of the manifest.

METHOD:

  1. Create folder structure, MANIFEST.usm, and an acquire.sh script
  2. Execute usm manifest acquire in package directory
  3. Fix any errors with the acquire script
  4. Look in the extracted source archive for installation documentation in a file like INSTALL or README
  5. Update the licences section in MANIFEST.usm to point to the text files of the licences in the extracted archive.
  6. Create other required and optional scripts, and update MANIFEST.usm.
  7. Execute usm manifest autoprovides --replace --debug in package directory
  8. Verify provides was populated correctly. Missing entries indicate a problem with the install script.
  9. Fix any errors
  10. Write a friendly PACKAGE.md
  11. Validate the manifest with usm manifest validate
  12. Verify compliance with Astrologue standards

PACKAGE SPECIFICATION:

Name: (package name) Version: (package version) Homepage URL: (url) Source Archive URL: (url)

Create a production-ready package following all requirements precisely.