- Introduced scripts and configurations for manual testing using `anyvm` with OpenIndiana and OmniOS. - Implemented repository fetching (`fetch_repo.sh`) and server startup (`run_depotd.sh`) scripts. - Enhanced `pkg6depotd` to support default publisher routes and trailing slashes. - Updated integration tests to verify new publisher route behavior. |
||
|---|---|---|
| .. | ||
| fetch_repo.sh | ||
| README.md | ||
| run_depotd.sh | ||
Manual Testing Setup for pkg6depotd
This directory contains scripts and configurations for manual testing of pkg6depotd using anyvm with OpenIndiana and OmniOS.
Overview
The goal is to test pkg6depotd as a server for the standard Python pkg client running inside an illumos VM.
- Host: Runs
pkg6depotdserving a local repository. - VM: Runs OpenIndiana or OmniOS and uses
pkgto communicate with the host.
Prerequisites
~/bin/anyvm.pyscript (automated QEMU VM launcher).- Rust toolchain installed on the host.
Step-by-Step Instructions
1. Start the VM
Choose either OpenIndiana or OmniOS. Use the anyvm.py script located in ~/bin/.
# For OpenIndiana
python3 ~/bin/anyvm.py --os openindiana --release 202510 -v $(pwd):/root/ips
# For OmniOS
python3 ~/bin/anyvm.py --os omnios --release r151056 -v $(pwd):/root/ips
You can add --ssh-port 2222 if you want a fixed SSH port. anyvm.py will display the SSH command to use.
2. Fetch a sample repository inside the VM
Once the VM is running, SSH into it and run the fetch_repo.sh script to create a small local repository.
Since we mounted the project root to /root/ips, you can fetch the repository directly into that mount to make it immediately available on the host.
# From the host (replace <port> with the one assigned by anyvm)
ssh -p <port> root@localhost
# Inside the VM
cd /root/ips
./testing/manual/fetch_repo.sh https://pkg.openindiana.org/hipster ./test_repo
This will create a repository at ./test_repo inside the VM (which is also visible on the host) containing a few packages.
3. Run pkg6depotd on the host
Now that the repository is available on the host, you can run pkg6depotd.
./testing/manual/run_depotd.sh ./test_repo
The server will start on 0.0.0.0:8080.
4. Test with the pkg client inside the VM
Back inside the VM, point the pkg client to the host's pkg6depotd.
In QEMU's default user networking, the host is reachable at 10.0.2.2.
# Inside the VM
# 1. Add the publisher
pkg set-publisher -g http://10.0.2.2:8080 test
# 2. List packages from the new publisher
pkg list -v -p test
# 3. Try to install a package (if available in the fetched subset)
pkg install library/zlib
Troubleshooting
- Connection issues: Ensure
pkg6depotdis binding to an address reachable from the VM (e.g.,0.0.0.0or the host's bridge IP). - Missing packages: Ensure the packages you are trying to install were included in the
fetch_repo.shcall.