Package Repository Client

Difference between version 30 and 31 - Previous - Next
https://urn.to/r/install_pkg_client%|%Download the Package Client Toolset installation script (Bash) for Linux and macOS%|%

https://pkg.management/pkgd/doc/trunk/doc/v1.html%|%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].

**Also see**
   * [Package Repository Server]
   * [Package Downloads Client]
   * [Package Downloads Server]
   * [Package Uploads Client]

-----

In order to use the [Package Repository Client], the following prerequisites must be met:

   1. The [tls] package available for use by the local [Category Distribution%|%Tcl installation]; the [IronTcl] distribution already includes it.
   1. An implementation of the https://en.wikipedia.org/wiki/OpenPGP%|%OpenPGP%|% standard that includes appropriate command-line tools (e.g. https://gnupg.org/%|%GPG%|%).
   1. The https://urn.to/r/pkg_client%|%Package Client Toolset%|%, added to the [auto_path] of the local [Category Distribution%|%Tcl installation].
   1. The https://www.mistachkin.com/key.asc%|%Package Signing Key%|% (dated "2003-06-09", with fingerprint https://pgp.mit.edu/pks/lookup?op=get&search=0xC3C7513883EEDD3AED1FE425502C96AF495DC2D9%|%C3C7 5138 83EE DD3A ED1F E425 502C 96AF 495D C2D9%|%) on your local [OpenPGP] key ring.

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 https://urn.to/r/pkg_client%|%here%|%.

-----

***Important Notes***

   1. The [GPG] executable ("gpg2") must reside along the [PATH].
   1. When using [Eagle], the [Harpy] packages and their associated license certificates must be available.

-----
How to use with [Eagle] Beta 450 or later:
  # NOTE: First, enable use of the [package unknown] handler...
  set iflags [object invoke -flags +NonPublic Interpreter.GetActive InterpreterFlags]
  object invoke -flags +NonPublic Interpreter.GetActive InterpreterFlags "$iflags -NoPackageUnknown"

  # NOTE: When troubleshooting, use the following commands befoirest...
  #       loading thame Pspackage Clientval ::Eagle::Tools::Common {variable verboseGet...Url 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...  loappend PauckageClientTo_paolseth [downloadAndExtractPackageClientToolset]
  package require Eagle.Package.Repository

  # 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]:

   1. Download the Package Client Toolset from https://urn.to/r/pkg_client%|%here%|%.
   1. Extract the resulting ZIP file to a local directory.
   1. Add the local directory from the previous step joined with "'''client/1.0/neutral'''" to the [auto_path].
   1. Evaluate the following commands:
  # NOTE: When troubleshooting, use the following commands befoirest...
  #       loading thame Pspackage Clientval ::Eagle::Tools::Common {variable verboseGet...Url 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 [Category Distribution%|%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.'''

<<categories>>Repository | Package