Skip to content

Latest commit

 

History

History
103 lines (101 loc) · 5.69 KB

METADATA.md

File metadata and controls

103 lines (101 loc) · 5.69 KB
  • Metadata

  • A Machine Consumable & Automation Friendly dataset is published & kept UP To Date
  • It's available as JSON, TOML & YAML
  • Example:
!#${ARCH} is just $(uname -m), i.e aarch64 or x86_64
"https://bin.pkgforge.dev/${ARCH}/METADATA.AIO.json"
"https://bin.pkgforge.dev/aarch64/METADATA.AIO.json"
"https://bin.pkgforge.dev/x86_64/METADATA.AIO.json"
//The Structure is like:
 {
   "base": [
      {
         ${Binaries from bin.pkgforge.dev/${ARCH}/**/Baseutils/**}
      }
   ],
   "bin" : [
      {
         ${Binaries are from core bin.pkgforge.dev/$ARCH}/**}
      }
   ],
   "pkg" : [
      {
         ${Binaries, or rather pkgs are from pkgforge/pkgcache}
      }
   ]
  • [Each of the ${BIN/PKG} contains fields like]:
pkg: "#Contains the Name of the $PKG itself, this is NOT what it will/should be Installed as",
pkg_id: "#Contains the Application ID, usually from appstream files, [Otherwise starts with xxx]",
pkg_name: "#Contains the real name, the $PKG will be installed as",
description: "#Contains the Description of the $PKG/$PKG_FAMILY [Otherwise EMPTY]",
note: "#Contains Additional Notes,Refs,Info the user need to be aware of, of the $PKG/$PKG_FAMILY"
version: "#Contains the version of the $PKG <AUTOGENERATED>",
download_url: "#Contains the Raw Direct Download URL of the $PKG <AUTOGENERATED>",
size: "#Contains the Total Size of the $PKG <AUTOGENERATED>",
bsum: "#Contains the Exact Blake3sum of the $PKG <AUTOGENERATED>",
shasum: "#Contains the Exact Sha256sum of the $PKG <AUTOGENERATED>",
build_date: "#Contains the Exact Date the $PKG was Built(Fetched) & Uploaded",
repology: "#Contains Repology Metadata from /api/v1/project/{$PKG/$PKG_FAMILY} [Otherwise EMPTY]",
src_url: "#Contains the Github/Gitlab/$GIT_SRC URL of the $PKG/$PKG_FAMILY [Otherwise EMPTY]",
homepage: "#Contains the Website/Project Page URL of the $PKG/$PKG_FAMILY [Otherwise EMPTY]",
build_script: "#Contains the Actual Script the $BINARY was Built(Fetched) With <AUTOGENERATED>"
build_log: "#Contains the link to view the Actual CI BUILD LOG of the $BINARY <AUTOGENERATED>"
appstream: "#Contains the Appstream ({AppData/Metainfo}.xml) File of the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Otherwise EMPTY]",
category: "#Contains the $PKG/$PKG_FAMILY's Category in FreeDesktopSpec [Fallbacks to Utility]"
desktop: "#Contains the .Desktop File of the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Otherwise EMPTY]",
icon: "#Contains the Logo/Icon File of the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Fallbacks to Generic Icon]",
screenshots: "#Contains an Array of Screenshots of the $PKG/$PKG_FAMILY (MAY BE INACCURATE) [Otherwise EMPTY]",
provides: "#Contains names of related binaries (Only if they belong to same $PKG_FAMILY) of the $PKG/$PKG_FAMILY [Otherwise EMPTY]",
snapshots: "#Contains an Array of Snapshots (Last 3 Version) of the $PKG/$PKG_FAMILY"
  • Additional Details & Fields
!#A number of things are undocumented/missing from the METADATA.AIO files, these are just examples

```bash
$(.pkg)
-> .Zsync Files (.AppImage/.NixAppImage)
#Though, there now exists appimageupdatetool: https://github.com/AppImageCommunity/AppImageUpdate, you can still use zsync manually if you need it 
"$(.name).zsync" #Example: https://pkgcache.pkgforge.dev/x86_64/qbittorrent.AppImage.zsync

  • This is a basic example demonstrating how easy it is to work with the Metadata
#-----------------------------------------------------------------------------#
# Host Triplet
echo "$(uname -m)" #either x86_64 or aarch64
#---------------------#
# Append `| jq -r '.$TYPE[].$PROPERTY'` to filter them, for example:
!# Simple example to: list all Pkgs in .pkg
curl -qfsSL "https://bin.pkgforge.dev/$(uname -m)/METADATA.AIO.json" | jq -r '.pkg[] | .pkg'

!#To pretty print anything that matches qbittorrent from .pkg
curl -qfsSL "https://bin.pkgforge.dev/$(uname -m)/METADATA.AIO.json" | jq -r '.pkg[] | select(.pkg | test("qbittorrent"; "i")) | "---------------------------\n" + (. | to_entries | map("\(.key): \(.value)") | join("\n"))'

image


  • URL Redirects

  • If you don't like the long urls in the Metadata, or consider them ugly.
  • I have set URL Redirects, so as long as your client follows a 301, you can basically use any of these to reach to any $ARCH/$HOST
  • The ones in the Left will Redirect you to Correct Location/Link (Ones in the Right)

Examples:

!# curl needs the `-L, --location` flag to Follow redirects
!# wget works without any flags

!# Example
curl -qfsSLO "https://pkgcache.pkgforge.dev/$(uname -m)/$PKG_OR_PATH_TO_PKG"

image