Download the Package Client Toolset installation script (Bash) for Linux and macOS
View documentation for version 1 of the Package Client Toolset
The Package Client Toolset, which is currently part of the Eagle project, allows users to obtain packages for both Tcl and Eagle.
It is implemented as a set of Tcl scripts, all of which support being evaluated in a native Tcl or Eagle interpreter.
It uses HTTPS to communicate with the Package Repository Server and the Package Downloads Server, which are just customized instances of Fossil.
All trunk check-ins on the Package Repository Server and Package Downloads Server are OpenPGP signed.
All files managed by the Package Repository Server and Package Downloads Server are OpenPGP signed.
The Package Downloads Client verifies the OpenPGP signatures on all downloaded files.
For each file that belongs to an Eagle package (e.g. script files), a Harpy script certificate file is also present.
This project is sponsored by Eyrie Solutions.
In order to use the Package Repository Client, the following prerequisites must be met:
Currently, Package Repository Client is in the beta testing phase.
There are an extremely limited set of packages available and all access is controlled via API keys.
To request access in order to add the packages that you maintain, please contact Joe Mistachkin. Please include your public OpenPGP key so that it can be added to the appropriate key ring(s).
For those simply wanting to examine the client code, which is Tcl licensed, it can be found here .
How to use with Eagle Beta 50 or later:
# NOTE: When troubleshooting, use the following commands first... namespace eval ::Eagle::Tools::Common {variable verboseGetUrl true} namespace eval ::PackageRepository {variable verboseUnknownResult true; variable verboseUriDownload true} namespace eval ::PackageDownloader {variable quiet false; variable verboseTemporaryDirectory true} # NOTE: Download and load the Package Client Toolset... loadPackageClientToolset [downloadAndExtractPackageClientToolset] # NOTE: Test that the Package Client Toolset is working... package require ZZZ.Test; # NOTE: Should (eventually) result in "0.0"
How to use with IronTcl:
# NOTE: When troubleshooting, use the following commands first... namespace eval ::Eagle::Tools::Common {variable verboseGetUrl true} namespace eval ::PackageRepository {variable verboseUnknownResult true; variable verboseUriDownload true} namespace eval ::PackageDownloader {variable quiet false; variable verboseTemporaryDirectory true} # NOTE: Load the Package Client Toolset... package require Eagle.Package.Repository # NOTE: Test that the Package Client Toolset is working... package require ping; # NOTE: Should (eventually) result in "0.0"
Other distributions of Tcl/Tk can also be used; however, they will need to have the http and tls packages already available as HTTPS is a hard-and-fast requirement.