Move composer scripts to root directory and add comprehensive Debian Atomic support
Some checks failed
Checks / Spelling (push) Has been cancelled
Checks / Python Linters (push) Has been cancelled
Checks / Shell Linters (push) Has been cancelled
Checks / 📦 Packit config lint (push) Has been cancelled
Checks / 🔍 Check for valid snapshot urls (push) Has been cancelled
Checks / 🔍 Check JSON files for formatting consistency (push) Has been cancelled
Generate / Documentation (push) Has been cancelled
Generate / Test Data (push) Has been cancelled
Tests / Unittest (push) Has been cancelled
Tests / Assembler test (legacy) (push) Has been cancelled
Tests / Smoke run: unittest as normal user on default runner (push) Has been cancelled

This commit is contained in:
robojerk 2025-08-23 08:02:45 -07:00
parent 3f639d537a
commit 502e1469ae
38 changed files with 7797 additions and 352 deletions

View file

@ -1,63 +1,67 @@
{
"name": "org.osbuild.apt.config",
"version": "1",
"description": "Configure apt package manager settings and sources",
"options": {
"type": "object",
"summary": "Configure apt package manager settings",
"description": [
"The `sources` option configures Debian package sources and repositories.",
"The `preferences` option configures package preferences and pinning.",
"The `apt_proxy` option can be used to specify an apt-cacher-ng proxy for faster downloads.",
"This stage will fail if the configuration files cannot be written or are invalid.",
"Uses the following binaries from the host:",
" * `chroot` to execute commands in the target filesystem",
" * `mount` to prepare the target tree for configuration",
"This stage will return the following metadata via the osbuild API:",
" configuration: information about the applied apt configuration"
],
"schema": {
"additionalProperties": false,
"properties": {
"config": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"oneOf": [
{"type": "string"},
{"type": "number"},
{"type": "boolean"}
]
}
},
"description": "apt.conf configuration sections and options"
},
"sources": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
"type": "string"
},
"description": "Additional sources.list.d files"
"description": "Debian package sources configuration"
},
"preferences": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
"type": "string"
},
"description": "Package preference rules for apt"
"description": "Package preferences and pinning configuration"
},
"apt_proxy": {
"type": "string",
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"sources": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Debian package sources configuration"
},
"preferences": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Package preferences and pinning configuration"
},
"apt_proxy": {
"type": "string",
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
}
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID"]
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}

View file

@ -1,9 +1,21 @@
{
"name": "org.osbuild.apt",
"version": "1",
"description": "Install Debian packages using apt",
"options": {
"type": "object",
"summary": "Install Debian packages using apt",
"description": [
"The `packages` option specifies an array of package names to install.",
"The `recommends` option controls whether recommended packages are installed.",
"The `unauthenticated` option allows installation of unauthenticated packages.",
"The `update` option controls whether package lists are updated before installation.",
"The `apt_proxy` option can be used to specify an apt-cacher-ng proxy for faster downloads.",
"This stage will fail if any of the packages cannot be found or installed.",
"Uses the following binaries from the host:",
" * `apt-get` to update package lists and install packages",
" * `chroot` to execute commands in the target filesystem",
" * `mount` to prepare the target tree for apt operations",
"This stage will return the following metadata via the osbuild API:",
" packages: information about the installed packages"
],
"schema": {
"additionalProperties": false,
"properties": {
"packages": {
"type": "array",
@ -14,18 +26,18 @@
},
"recommends": {
"type": "boolean",
"default": false,
"description": "Install recommended packages"
"description": "Install recommended packages",
"default": false
},
"unauthenticated": {
"type": "boolean",
"default": false,
"description": "Allow unauthenticated packages"
"description": "Allow unauthenticated packages",
"default": false
},
"update": {
"type": "boolean",
"default": true,
"description": "Update package lists before installation"
"description": "Update package lists before installation",
"default": true
},
"apt_proxy": {
"type": "string",
@ -34,23 +46,43 @@
},
"required": ["packages"]
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"packages": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of packages to install"
},
"recommends": {
"type": "boolean",
"description": "Install recommended packages",
"default": false
},
"unauthenticated": {
"type": "boolean",
"description": "Allow unauthenticated packages",
"default": false
},
"update": {
"type": "boolean",
"description": "Update package lists before installation",
"default": true
},
"apt_proxy": {
"type": "string",
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
},
"required": ["packages"]
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID", "CAP_SYS_CHROOT"]
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}

View file

@ -1,57 +1,71 @@
{
"name": "org.osbuild.debian.source",
"version": "1",
"description": "Download and manage Debian source packages",
"options": {
"type": "object",
"summary": "Download and manage Debian source packages",
"description": [
"The `source_package` option specifies the source package to download.",
"The `suite` option specifies the Debian suite to download from.",
"The `mirror` option specifies the Debian mirror URL.",
"The `apt_proxy` option can be used to specify an apt-cacher-ng proxy for faster downloads.",
"This stage will fail if the source package cannot be found or downloaded.",
"Uses the following binaries from the host:",
" * `apt-get` to download source packages",
" * `chroot` to execute commands in the target filesystem",
" * `mount` to prepare the target tree for package operations",
"This stage will return the following metadata via the osbuild API:",
" source: information about the downloaded source package"
],
"schema": {
"additionalProperties": false,
"properties": {
"package": {
"source_package": {
"type": "string",
"description": "Name of the Debian source package to download"
"description": "Source package to download"
},
"suite": {
"type": "string",
"default": "bookworm",
"description": "Debian suite for the package"
"description": "Debian suite to download from",
"default": "bookworm"
},
"mirror": {
"type": "string",
"default": "http://deb.debian.org/debian",
"description": "Debian mirror for package sources"
"description": "Debian mirror URL",
"default": "http://deb.debian.org/debian"
},
"components": {
"type": "array",
"items": {
"type": "string"
},
"default": ["main", "contrib", "non-free"],
"description": "Debian repository components to use"
},
"output_dir": {
"apt_proxy": {
"type": "string",
"default": ".",
"description": "Directory for downloaded source packages"
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
},
"required": ["package"]
"required": ["source_package"]
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"source_package": {
"type": "string",
"description": "Source package to download"
},
"suite": {
"type": "string",
"description": "Debian suite to download from",
"default": "bookworm"
},
"mirror": {
"type": "string",
"description": "Debian mirror URL",
"default": "http://deb.debian.org/debian"
},
"apt_proxy": {
"type": "string",
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
},
"required": ["source_package"]
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID"]
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}

View file

@ -1,19 +1,32 @@
{
"name": "org.osbuild.debootstrap",
"version": "1",
"description": "Create base Debian filesystem using debootstrap",
"options": {
"type": "object",
"summary": "Create base Debian filesystem using debootstrap",
"description": [
"The `suite` option specifies the Debian suite to bootstrap (e.g., bookworm, sid).",
"The `mirror` option specifies the Debian mirror URL for package downloads.",
"The `arch` option specifies the target architecture (e.g., amd64, arm64).",
"The `variant` option specifies the debootstrap variant (e.g., minbase, buildd).",
"The `extra_packages` option allows additional packages to be included in the base filesystem.",
"The `apt_proxy` option can be used to specify an apt-cacher-ng proxy for faster downloads.",
"This stage will fail if debootstrap cannot be executed or if the base filesystem creation fails.",
"Uses the following binaries from the host:",
" * `debootstrap` to create the base Debian filesystem",
" * `chroot` to execute commands in the target filesystem",
" * `mount` to prepare the target tree for debootstrap",
"This stage will return the following metadata via the osbuild API:",
" filesystem: information about the created base filesystem"
],
"schema": {
"additionalProperties": false,
"properties": {
"suite": {
"type": "string",
"default": "bookworm",
"description": "Debian suite to bootstrap (e.g., bookworm, sid)"
"description": "Debian suite to bootstrap (e.g., bookworm, sid)",
"default": "bookworm"
},
"mirror": {
"type": "string",
"default": "http://deb.debian.org/debian",
"description": "Debian mirror URL"
"description": "Debian mirror URL",
"default": "http://deb.debian.org/debian"
},
"arch": {
"type": "string",
@ -21,16 +34,16 @@
},
"variant": {
"type": "string",
"default": "minbase",
"description": "Debootstrap variant (e.g., minbase, buildd)"
"description": "Debootstrap variant (e.g., minbase, buildd)",
"default": "minbase"
},
"extra_packages": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Additional packages to include in base filesystem"
"description": "Additional packages to include in base filesystem",
"default": []
},
"apt_proxy": {
"type": "string",
@ -39,23 +52,48 @@
},
"required": ["suite", "mirror"]
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"suite": {
"type": "string",
"description": "Debian suite to bootstrap (e.g., bookworm, sid)",
"default": "bookworm"
},
"mirror": {
"type": "string",
"description": "Debian mirror URL",
"default": "http://deb.debian.org/debian"
},
"arch": {
"type": "string",
"description": "Target architecture (e.g., amd64, arm64)"
},
"variant": {
"type": "string",
"description": "Debootstrap variant (e.g., minbase, buildd)",
"default": "minbase"
},
"extra_packages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional packages to include in base filesystem",
"default": []
},
"apt_proxy": {
"type": "string",
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
},
"required": ["suite", "mirror"]
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID"]
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}

View file

@ -1,65 +1,67 @@
{
"name": "org.osbuild.ostree.commit",
"version": "1",
"description": "Create OSTree commit from filesystem tree",
"options": {
"type": "object",
"summary": "Create OSTree commit from filesystem tree",
"description": [
"The `repo` option specifies the path to the OSTree repository.",
"The `branch` option specifies the branch name for the commit.",
"The `subject` option provides a commit message for the OSTree commit.",
"The `body` option provides additional commit details.",
"This stage will fail if the OSTree repository cannot be accessed or the commit fails.",
"Uses the following binaries from the host:",
" * `ostree` to create commits and manage the repository",
" * `chroot` to execute commands in the target filesystem",
" * `mount` to prepare the target tree for OSTree operations",
"This stage will return the following metadata via the osbuild API:",
" commit: information about the created OSTree commit"
],
"schema": {
"additionalProperties": false,
"properties": {
"repository": {
"repo": {
"type": "string",
"default": "ostree-repo",
"description": "OSTree repository name/path"
"description": "Path to OSTree repository"
},
"branch": {
"type": "string",
"default": "debian/atomic",
"description": "OSTree branch name for the commit"
"description": "Branch name for the commit"
},
"subject": {
"type": "string",
"default": "Debian atomic commit",
"description": "Commit message/subject"
"description": "Commit message"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {},
"description": "Additional metadata key-value pairs"
},
"collection_id": {
"body": {
"type": "string",
"description": "Collection ID for ref binding"
},
"ref_binding": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "List of ref bindings for the commit"
"description": "Additional commit details"
}
},
"required": ["branch"]
"required": ["repo", "branch"]
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"repo": {
"type": "string",
"description": "Path to OSTree repository"
},
"branch": {
"type": "string",
"description": "Branch name for the commit"
},
"subject": {
"type": "string",
"description": "Commit message"
},
"body": {
"type": "string",
"description": "Additional commit details"
}
},
"required": ["repo", "branch"]
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID"]
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}

View file

@ -1,49 +1,67 @@
{
"name": "org.osbuild.ostree.deploy",
"version": "1",
"description": "Deploy OSTree branch to target filesystem",
"options": {
"type": "object",
"summary": "Deploy OSTree branch to target filesystem",
"description": [
"The `repo` option specifies the path to the OSTree repository.",
"The `branch` option specifies the branch name to deploy.",
"The `target` option specifies the target filesystem path.",
"The `osname` option specifies the operating system name for the deployment.",
"This stage will fail if the OSTree repository cannot be accessed or the deployment fails.",
"Uses the following binaries from the host:",
" * `ostree` to deploy branches and manage the target filesystem",
" * `chroot` to execute commands in the target filesystem",
" * `mount` to prepare the target tree for OSTree operations",
"This stage will return the following metadata via the osbuild API:",
" deployment: information about the OSTree deployment"
],
"schema": {
"additionalProperties": false,
"properties": {
"repository": {
"repo": {
"type": "string",
"default": "ostree-repo",
"description": "OSTree repository path"
"description": "Path to OSTree repository"
},
"branch": {
"type": "string",
"default": "debian/atomic",
"description": "OSTree branch to deploy"
"description": "Branch name to deploy"
},
"ref": {
"target": {
"type": "string",
"description": "Specific OSTree ref to deploy (overrides branch)"
"description": "Target filesystem path"
},
"target_subdir": {
"osname": {
"type": "string",
"default": "sysroot",
"description": "Target subdirectory for deployment"
"description": "Operating system name for deployment"
}
},
"required": ["branch"]
"required": ["repo", "branch", "target"]
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"repo": {
"type": "string",
"description": "Path to OSTree repository"
},
"branch": {
"type": "string",
"description": "Branch name to deploy"
},
"target": {
"type": "string",
"description": "Target filesystem path"
},
"osname": {
"type": "string",
"description": "Operating system name for deployment"
}
},
"required": ["repo", "branch", "target"]
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID"]
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}

View file

@ -1,54 +1,86 @@
{
"name": "org.osbuild.sbuild",
"version": "1",
"description": "Build Debian packages using sbuild chroot environments",
"options": {
"type": "object",
"summary": "Build Debian packages using sbuild",
"description": [
"The `source_package` option specifies the source package to build.",
"The `build_deps` option specifies additional build dependencies.",
"The `build_arch` option specifies the target architecture for the build.",
"The `chroot_suite` option specifies the Debian suite for the build chroot.",
"The `apt_proxy` option can be used to specify an apt-cacher-ng proxy for faster downloads.",
"This stage will fail if the source package cannot be found or the build fails.",
"Uses the following binaries from the host:",
" * `sbuild` to build packages in isolated chroot environments",
" * `chroot` to execute commands in the build environment",
" * `mount` to prepare the build environment",
"This stage will return the following metadata via the osbuild API:",
" packages: information about the built packages"
],
"schema": {
"additionalProperties": false,
"properties": {
"suite": {
"source_package": {
"type": "string",
"default": "bookworm",
"description": "Debian suite for the build environment"
"description": "Source package to build"
},
"arch": {
"type": "string",
"default": "amd64",
"description": "Target architecture for building"
"build_deps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional build dependencies",
"default": []
},
"mirror": {
"build_arch": {
"type": "string",
"default": "http://deb.debian.org/debian",
"description": "Debian mirror for chroot creation"
"description": "Target architecture for the build"
},
"source_dir": {
"chroot_suite": {
"type": "string",
"default": ".",
"description": "Directory containing package source"
"description": "Debian suite for the build chroot",
"default": "bookworm"
},
"output_dir": {
"apt_proxy": {
"type": "string",
"default": ".",
"description": "Directory for built packages"
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false
},
"devices": {
"type": "object",
"additionalProperties": false
},
"mounts": {
"type": "object",
"additionalProperties": false
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
},
"default": ["CAP_CHOWN", "CAP_DAC_OVERRIDE", "CAP_FOWNER", "CAP_FSETID", "CAP_MKNOD", "CAP_SETGID", "CAP_SETUID", "CAP_SYS_CHROOT"]
"required": ["source_package"]
},
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"source_package": {
"type": "string",
"description": "Source package to build"
},
"build_deps": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional build dependencies",
"default": []
},
"build_arch": {
"type": "string",
"description": "Target architecture for the build"
},
"chroot_suite": {
"type": "string",
"description": "Debian suite for the build chroot",
"default": "bookworm"
},
"apt_proxy": {
"type": "string",
"description": "apt-cacher-ng proxy URL (e.g., http://localhost:3142)"
}
},
"required": ["source_package"]
},
"inputs": {
"type": "object",
"additionalProperties": false
}
}
}