Hello everyone,
Following this discussion, I have implemented a binary archiving solution with automatic installation scripts for all packages from the FreeBSD:14:amd64/quarterly and FreeBSD:14:amd64/latest repositories.
http://pkgrescue.ddns.net
(For now, it's just a simple DNS redirection. I will consider adding a domain and switching to HTTPS soon if I see enough interest in the project).
This offers an alternative to ports and is much faster in case packages disappear from the repositories.
For each retrieved package, the following are made available:
- The binary package as retrieved with the command "pkg fetch PACKAGE-1.2.3,4".
- A hash (sha256). You can verify if there is an error (at least compared to the current repository packages), but logically there shouldn't be any.
- An autoinstall script, to install each package in the version of your choice, with the corresponding dependencies versions for the chosen package version.
The packages are not visible on the URL; you need the exact name and version of the package (as specified above).
I have scripted a simple function to add to /etc/profile or ~/.profile (on FreeBSD) allowing the use of a "pkgrescue" command to directly consult and manipulate the binaries from the site, install them, download them, see their dependencies, verify the hash, list the entire catalog...
Code:
pkgrescue {search|install|fetch|dependencies|check} {quarterly|latest} {PACKAGE|PACKAGE-1.2.3,4.pkg}
It's explained on the index page of the URL.
To access the catalog of each repository directly from your browser:
Ultimately, there will be multiple versions of each binary.
The autoinstall scripts allow the reinstallation of any version of any package with the corresponding dependencies for the chosen version.
This is already the case for some packages from the quarterly, which was the first to be mirrored.
A small maintenance of a few minutes will take place every day at 8 am (UTC) to allow the server to fetch any new packages and generate the corresponding autoinstall scripts.
During this time, the site is offline but comes back online once the operation is complete.
The entire process is automated, and the files are set to read-only before being placed in the document root.
Any feedback, spotting of errors, or suggestions for improvement are welcome (as long as it doesn't require 50 hours of work per week). To develop or let go... depending on the interest.
If the project is of interest, I might add other versions (13 and/or 15).
As a test, I reinstalled an entire desktop environment the night before last (xfce + all basic plugins and apps) solely based on this repository.
It is therefore already functional for many packages (I haven't encountered any errors yet, but there might be some due to the initial loading delay of the repositories that forced me to stop/restart at certain times, also for testing autoinstall scripts generation).
I specify that I started less than a week ago; there will certainly be scenarios to anticipate/correct/improve.
For now, I am testing and writing alone.