Metadata
Metadata Spec
The best way to learn it, is to view it (https://soarpkgs.pkgforge.dev/metadata/METADATA.json) & and then read the sections below:
Fields
//The Structure is like:
[
{
// ${Entries}
}
]
The metadata doesn't have all the fields (Most are empty/placeholders) as these are autofilled after a build is successful.
// @string --> Single String Value
// @array --> Multiple (array) String Values
// @array|@string --> Can be either, check & handle accordingly
//Denotes if this pkg is disabled (currently broken, SHOULD NOT BE INSTALLED)
disabled: false, //if true, then this pkg is marked disabled
//Contains the Name of the $PKG itself, this is NOT what it will/should be Installed as
pkg: "@string",
//Contains the Main Family, the package is a part of
pkg_family: "@string",
//Contains the Application ID, generated from source URL [Otherwise Empty/Non-Existent]
//IF THIS IS MISSING, assume pkg_id==app_id
pkg_id: "@string",
//Contains the real name, the $PKG will be installed as, IF THIS IS MISSING, use .pkg
pkg_name: "@string",
//Contains the Application ID, usually from appstream files, [Otherwise Empty/Non-Existent]
//IF THIS IS MISSING, assume app_id==pkg_id
app_id: "@string"
//Contains the Description of the $PKG/$PKG_FAMILY [Otherwise Empty/Non-Existent]
description: "@string",
//Contains Additional Notes,Refs,Info the user need to be aware of, [Otherwise Empty/Non-Existent]
note: "@string|@array",
//Contains the version of the $PKG <AUTOGENERATED>
version: "@string",
//Contains the Raw Direct Download URL of the $PKG <AUTOGENERATED>
download_url: "@string",
//Contains the Total Size of the $PKG <AUTOGENERATED> in KiB MiB GiB BUT written as KB MB GB (Example: 9.01 MB)
size: "@string",
//Contains the Exact Blake3sum of the $PKG <AUTOGENERATED>
bsum: "@string",
//Contains the Exact Sha256sum of the $PKG <AUTOGENERATED>
shasum: "@string",
//Contains the Exact Date the $PKG was Built/Fetched & Uploaded
//Format in YYYY-MM-DDTHH:MM:SS (example: 2024-10-08T01:19:56)
build_date: "@string",
//Contains Repology Metadata from /api/v1/project/{$PKG/$PKG_FAMILY} [Otherwise Empty/Non-Existent]
repology: "@string|@array",
//Contains the Github/Gitlab/$GIT_SRC URL of the $PKG/$PKG_FAMILY [Otherwise Empty/Non-Existent]
src_url: "@string|@array",
//Contains the Website/Project Page URL of the $PKG/$PKG_FAMILY [Otherwise Empty/Non-Existent]
homepage: "@string|@array",
//Contains the Actual Script the $BINARY was Built(Fetched) With <AUTOGENERATED>
build_script: "@string",
//Contains the link to view the Actual CI BUILD LOG of the $BINARY <AUTOGENERATED>
build_log: "@string",
//Contains the URL to Appstream ({AppData/Metainfo}.xml) File of the $PKG/$PKG_FAMILY
//This MAY BE INACCURATE [Otherwise Empty/Non-Existent]
appstream: "@string",
//Contains the $PKG/$PKG_FAMILY's Category in FreeDesktopSpec [Fallbacks to Utility]
category: "@string|@array",
//Contains the URL to .Desktop File of the $PKG/$PKG_FAMILY
//This MAY BE INACCURATE, [Otherwise Empty/Non-Existent]
desktop: "@string",
//Contains the Logo/Icon File of the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Fallbacks to Generic Icon]
icon: "@string",
//Contains the License for the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Otherwise Empty/Non-Existent]
license: "@string|@array",
//Contains names of related binaries [COMMA SEPARATED]
//Only if they belong to same $PKG_FAMILY, of the $PKG/$PKG_FAMILY [Otherwise Empty/Non-Existent]
provides: "@string",
//Contains an Array of Screenshots of the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Otherwise Empty/Non-Existent]
screenshots: "@array",
//Contains an Array of Snapshots (Last 3 Version) of the $PKG/$PKG_FAMILY [Otherwise Empty/Non-Existent]
snapshots: "@array",
//Contains Tags describing/categorizing the $PKG/$PKG_FAMILY [Otherwise Empty/Non-Existent]
tag: "@array"
URLs
Metadata File is Stored on GitHub (99% Uptime)
https://soarpkgs.pkgforge.dev/${PATH} is just a redirect to https://raw.githubusercontent.com/pkgforge/soarpkgs/refs/heads/main/${PATH}
https://soarpkgs.pkgforge.dev/metadata/METADATA.json
https://raw.githubusercontent.com/pkgforge/soarpkgs/refs/heads/main/metadata/METADATA.json
This is a basic example demonstrating how easy it is to work with the Metadata
#Append `| jq -r '.[].$PROPERTY'` to filter them
#Simple example to: list all Pkgs in .pkg
curl -qfsSL "https://soarpkgs.pkgforge.dev/metadata/METADATA.json" \
| jq -r '
.[]
| .pkg
'
#Example to list in .pkg (.pkg_type) [.pkg_id]
curl -qfsSL "https://soarpkgs.pkgforge.dev/metadata/METADATA.json" \
| jq -r '
.[] |
"\(.pkg) (\(.pkg_type)) [\(.pkg_id)]"
' \
| sort -u
#To pretty print anything that matches vlc from .pkg
curl -qfsSL "https://soarpkgs.pkgforge.dev/metadata/METADATA.json" \
| jq -r '
.[]
| select(.pkg | test("vlc"; "i"))
| "---------------------------\n" + (
.
| to_entries
| map("\(.key): \(.value)")
| join("\n")
)
'
Last updated