Packages

Programs beyond the system arrive as packages: a folder on the package server with a signed MANIFEST and the files it names. dosget fetches them; the App Store and Updates are windows over it.

dosget

dosget list              # what the channel has
dosget info mizugram     # one package: version, summary, who made it
dosget install mizugram  # fetch it and unpack it
dosget update            # everything installed to the channel's versions (also: upgrade)
dosget notes             # what is new in the updates waiting
dosget remove mizugram   # delete what it installed
dosget drivers           # the drivers this machine's devices need
dosget channel alpha     # stable, preview or alpha (administrators)

Channels

The server keeps three channels. Stable has builds that were tried and found sound; a new Mizu follows it. Preview has the builds being tried before they become Stable. Alpha has every build as soon as it is made. A build reaches Preview and then Stable as it is, the same signed files, so what Stable gets is exactly what was tried. Choose the channel in Updates, or with dosget channel; only an administrator can change it. Moving to a steadier channel never takes the system back to an older build: it stays until that channel passes it.

A package goes into Z:\NAME (or its target), is put on the program search path unless it says path = no, and is recorded in \BOOT\DOSGET\NAME.PKG. That record is what the Start menu reads: a package installed a minute ago is in the menu now, without the desktop knowing anything about it.

Signatures

Every manifest is signed by the server's key, and the kernel checks the signature with the key built into it before anything is unpacked; then each file's SHA-256 is checked against the manifest. A package that was changed on the way is refused. That also means dosget installs only what the official server signed. To share a program of your own, share the file: an .EXE or .APP runs from anywhere.

The manifest

name = MIZUGRAM
version = 0.1-5b4701a5
summary = Mizugram, a Telegram client (preview)
path = no
file = MIZUGRAM.APP
menu = Internet|Mizugram|MIZUGRAM.APP
check = MIZUGRAM.APP 221320 3f0c55d1
abi = 21
sha256 = MIZUGRAM.APP 9d4e...
LineMeaning
name, version, summaryWhat the App Store and dosget list show. A different version is an update.
fileA file of the package, into its directory. One line per file.
placeFILE \DIR: a file that goes somewhere else.
targetInstall into this directory instead of \NAME.
path = noKeep it off the search path (apps opened from the menu need not be on it).
menuFolder|Label|command: an entry in Start > Programs > Folder. One line per entry; the command may carry arguments (GAMES.APP Snake).
runThe command the menu should use to start the package's program, if not just its file.
start = noNo Start menu entry of its own.
setupA program of the package run after installing (with /U on an update).
check, sha256Size and CRC32, and SHA-256, per file: what the download is checked against.
abiThe ABI the files were built for; a system too old for it does not install them.
criticalMarks a system update as one to take soon.
noteVERSION|text: release notes, newest first. dosget notes and Updates show those newer than what is installed.

MIZU_API reference →