1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# Package Client Toolset (pkgt)
> Secure, cross‑platform package delivery for **Tcl** and **Eagle** — designed to fetch on‑demand or pre‑install packages with cryptographic verification.
[](LICENSE)
---
## Table of contents
* [Why pkgt?](#why-pkgt)
* [What’s in this repo](#whats-in-this-repo)
* [Security model at a glance](#security-model-at-a-glance)
* [Supported runtimes & prerequisites](#supported-runtimes--prerequisites)
* [Quick start (consumers)](#quick-start-consumers)
* [Tcl](#tcl-consumers)
* [Eagle](#eagle-consumers)
* [Quick start (package producers & maintainers)](#quick-start-package-producers--maintainers)
|
|
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# Package Client Toolset (pkgt)
> Secure, cross‑platform package delivery for **Tcl** and **Eagle** — designed to fetch on‑demand or pre‑install packages with cryptographic verification.
[](LICENSE)
---
## Table of contents
* [Why pkgt?](#why-pkgt)
* [What’s in this repository](#whats-in-this-repository)
* [Security model at a glance](#security-model-at-a-glance)
* [Supported runtimes & prerequisites](#supported-runtimes--prerequisites)
* [Quick start (consumers)](#quick-start-consumers)
* [Tcl](#tcl-consumers)
* [Eagle](#eagle-consumers)
* [Quick start (package producers & maintainers)](#quick-start-package-producers--maintainers)
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
* **Fetching on demand** (transparent to `package require`) or **pre‑installing** ahead of time.
* **Verifying everything**: package metadata and files are **OpenPGP** signed; **Eagle** scripts are **also** signed with **Harpy**.
* **Working for both Tcl and Eagle** with the same client toolset.
---
## What’s in this repo
```
.
├─ client/1.0/neutral/
│ ├─ VERSION # current toolset version (e.g., 1.0.11)
│ ├─ common.tcl # shared Tcl helpers
│ ├─ pkgIndex.tcl # Tcl-side integration
|
|
|
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
* **Fetching on demand** (transparent to `package require`) or **pre‑installing** ahead of time.
* **Verifying everything**: package metadata and files are **OpenPGP** signed; **Eagle** scripts are **also** signed with **Harpy**.
* **Working for both Tcl and Eagle** with the same client toolset.
---
## What’s in this repository
```
.
├─ client/1.0/neutral/
│ ├─ VERSION # current toolset version (e.g., 1.0.11)
│ ├─ common.tcl # shared Tcl helpers
│ ├─ pkgIndex.tcl # Tcl-side integration
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
## Supported runtimes & prerequisites
* **Tcl**: Standard Tcl (8.5+) environments.
* **Eagle**: Any environment that can run Eagle scripts.
* **Platforms**: Windows, Linux, macOS (no OS‑specific assumptions in the client libraries).
* **OpenPGP**: An implementation of the OpenPGP standard (e.g. GPG).
* **Tools inside this repo**:
* **Tcl integration** via `client/1.0/neutral/pkgIndex.tcl` and `client/1.0/neutral/common.tcl`.
* **Eagle integration** via `client/1.0/neutral/pkgIndex.eagle` (+ Harpy-signed variants).
* **Harpy signing utility** at `externals/Harpy/Tools/sign.eagle`.
* **Eagle library packaged for Tcl** under `externals/Eagle/lib/Eagle1.0/`.
> When using the official Package Client Toolset, Package Repository Server, or Package Downloads Server, you will need to add the Primary Package Signing Key (dated "2003-06-09", with fingerprint "C3C7 5138 83EE DD3A ED1F E425 502C 96AF 495D C2D9") to your local OpenPGP key ring.
---
## Quick start (consumers)
### Tcl (consumers)
1. **Vendor the client** (recommended layout):
```
your-project/
vendor/pkgt/ # this repo (or a release snapshot)
client/1.0/neutral/ # Tcl/Eagle indices + client libs
externals/ # Eagle + Harpy helpers
```
2. **Add pkgt to Tcl’s search path** (e.g., early in your app bootstrap):
```tcl
|
|
|
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
## Supported runtimes & prerequisites
* **Tcl**: Standard Tcl (8.5+) environments.
* **Eagle**: Any environment that can run Eagle scripts.
* **Platforms**: Windows, Linux, macOS (no OS‑specific assumptions in the client libraries).
* **OpenPGP**: An implementation of the OpenPGP standard (e.g. GPG).
* **Tools inside this repository**:
* **Tcl integration** via `client/1.0/neutral/pkgIndex.tcl` and `client/1.0/neutral/common.tcl`.
* **Eagle integration** via `client/1.0/neutral/pkgIndex.eagle` (+ Harpy-signed variants).
* **Harpy signing utility** at `externals/Harpy/Tools/sign.eagle`.
* **Eagle library packaged for Tcl** under `externals/Eagle/lib/Eagle1.0/`.
> When using the official Package Client Toolset, Package Repository Server, or Package Downloads Server, you will need to add the Primary Package Signing Key (dated "2003-06-09", with fingerprint "C3C7 5138 83EE DD3A ED1F E425 502C 96AF 495D C2D9") to your local OpenPGP key ring.
---
## Quick start (consumers)
### Tcl (consumers)
1. **Vendor the client** (recommended layout):
```
your-project/
vendor/pkgt/ # This repository (or a release snapshot)
client/1.0/neutral/ # Tcl/Eagle indices + client libs
externals/ # Eagle + Harpy helpers
```
2. **Add pkgt to Tcl’s search path** (e.g., early in your app bootstrap):
```tcl
|