Skip to content

Configuration

The pmsm.yaml file drives all generators. This page mirrors the structure used in the project README and pmsm.yaml.example.

Package information

package:
  name: myapp              # Package name
  version: "1.0.0"         # Package version
  description: "..."       # Package description
  homepage: "https://..."  # Homepage URL
  license: "GPL-3.0"       # License identifier
  maintainer:
    name: "Name"
    email: "email@example.com"

Build configuration

build:
  source: "https://..."     # Source URL (supports {version}, {name} templates)
  build: "make"             # Build command (optional)
  prepare: "./configure"    # Prepare command (optional)
  install: "make install"   # Install command (optional)

Dependencies

dependencies:
  runtime:                  # Runtime dependencies
    - libc6
    - openssl
  build:                    # Build-time dependencies
    - gcc
    - make

Package manager configuration

Each package manager can be customized:

package_managers:
  apt:
    enabled: true
    section: "utils"        # Debian section
    priority: "optional"    # Debian priority
    depends:                # Override dependencies
      - libssl-dev
    build: "make"           # Override build script
    install: "make install"  # Override install script

  apk:
    enabled: true
    depends:
      - openssl-dev

  aur:
    enabled: true
    pkgrel: 1               # Package release number
    arch: ["x86_64"]        # Supported architectures

  nix:
    enabled: true
    flake: false            # true: generate flake.nix + nix/overlay.nix; build with `nix build`
    # flake_package: "my-app"  # optional pkgs.<name> (default: package.name)
    # nixpkgs_input: "github:NixOS/nixpkgs/nixos-unstable"
    buildInputs:            # Nix build inputs
      - openssl

For behavior of each backend, see Package managers.