Updating repos: reduce PetGet dependency
Pkg currently uses PetGet to update the repo files:
pkg repo-update
currently calls /usr/local/petget/0setup
, which downloads the latest compat distro repo db files, and builds the puppy format repo files (in ~/.packages).
0setup
relies on lots of other, non-Pkg config files, like /etc/DISTRO_SPECS, ~/.packages/PKGS_MANAGEMENT, ~/.packages/DISTRO_PKGS_SPECS, others...
The repo-update func would need to be able to update all repos that are listed by pkg repo-list, and work out which compat distro (slack, debian, ubuntu) it is built from, then run the appropriate download/convert routine.
Need to write a Pkg func that replaces the job of 0setup
:
However, puppy does not contain the info needed for users to install Slackware repos in Ubuntu based pups (etc) in ~/.packages/**
- the URLs for slackwares repo db files are not included in a non-slackware pup (for example).
Pkg can install and use repos from other pups (slackware in ubuntu pups, etc), but cannot generate from source slackware repos in ubuntu pups (and vice versa)
EDIT I think that last point is not true anymore.. cos we have slack2pup which works on my Debian Stretch...).
To do this, sources-all
would need to contain extra fields for every repo:
- COMPAT_DISTRO (slackware/debian/ubuntu)
- COMPAT_VERSION (14.2/7.5/18.04)
- PKG_DOCS_DISTRO_COMPAT (URL to source repo dbs - PACKAGES.TXT or PACKAGES.gz)