Store — Programme für Violyx
Schlichte Links auf .vpk-Programme für Violyx, von einer Domain, die der Violyx-Browser ohne JavaScript erreichen kann.
Wie ein Programm auf den Rechner kommt
- Diese Seite im Violyx-Browser öffnen (Adresse merecete.org/store/) und einen .vpk-Link wählen. Die Datei landet in /downloads.
- In Files nach /downloads gehen, die Datei auswählen und Enter drücken. Das System fragt einmal und zeigt dabei Titel und Version des Pakets. Danach steht das Programm in der Übersicht auf F2.
- Oder in Commands die Kommandoform benutzen: install DATEI.VPK, danach run NAME. run DATEI.VPK startet ein Paket direkt, ohne es zu installieren.
- In der Übersicht auf F2 ein Programm auswählen und mit Del mitsamt seinem Datenordner entfernen.
Katalog
Hier ist noch kein Programm veröffentlicht. Im Download-Ordner liegen keine .vpk-Dateien und die Katalogdatei ist leer. Die Dateien selbst entscheiden, was in der Liste unten steht, nicht diese Seite — deshalb kann ein Eintrag nicht von dem Programm abweichen, das er beschreibt.
Was ein Paket ist
Eine .vpk-Datei ist kein zip und kein tar: sie ist ein 256 Byte langer Kopf, direkt gefolgt vom Programm selbst, unbearbeitet und unkomprimiert. Der Kernel liesst den Kopf, bevor etwas läuft. Diese Felder und Grenzen akzeptiert er, entnommen aus kernel/prog.c und sdk/mkvpk.py in den Violyx-Quellen:
magic- die vier Bytes VPK1 am Anfang
elf- Länge des Programmteils; Kopf plus dieser Wert muss der Dateigröße entsprechen
cols/rows- Fenstergröße in Zeichenzellen: 20 bis 76 Spalten, 5 bis 20 Zeilen
name- bis zu 23 Zeichen aus a-z, 0-9, - und _; bestimmt den Ordner /programs/<name>
title- steht im Fensterrahmen, bis zu 23 Zeichen
version- bis zu 11 Zeichen, Pflicht
author- bis zu 31 Zeichen, freiwillig
icon- drei Zeilen mit je sechs Zeichen, Codepage 437, für die Programmübersicht
Ein Paket muss mindestens 320 Byte und höchstens 32 MiB groß sein. Das Programm darin muss eine 64-Bit-x86-ELF sein, die für den Programmbereich von Violyx gebaut ist. Ein Paket mit dem Namen eines Programms, das schon im System liegt (snake, bricks, novastrike, xzn, pong, invaders, chomp, mines, calc, clock, calendar, write, paint, files, commands, view, web, cc) lässt sich installieren, aber es startet das eingebaute mit diesem Namen.
Eigene veröffentlichen
Zwei Wege führen zum Paket. Auf einem anderen Rechner: das ELF mit der in der SDK beschriebenen Werkzeugkette bauen, dann sdk/mkvpk.py mit Name, Titel, Version, Autor, Fenstergröße und dem Symbol aus drei Zeilen (durch Pipe-Zeichen getrennt) aufrufen. Auf einem laufenden Violyx: Quellcode schreiben und cc DATEI.c aufrufen, dann liegt DATEI.vpk daneben; -o NAME.vpk wählt eine andere Ausgabedatei, -s 60x19 die Fenstergröße und -t TITEL den Fenstertitel.
Um ein Programm hier bereitzustellen, muss die .vpk-Datei in store/files/ beim Website-Projekt gelegt und die Seiten neu erzeugt werden. Die Liste auf dieser Seite, der Download-Ordner und /store/index.json entstehen allesamt aus den Dateien, die wirklich da sind.
Maschinenlesbarer Katalog
/store/index.json beschreibt dieselben Programme in JSON für Werkzeuge: Name, Titel, Version, Autor, Fenstergröße, die drei Symbolzeilen, der Downloadpfad, die Größe, die SHA-256-Prüfsumme und das Datum. Jeder Wert stammt aus der Datei selbst, eine kurze Beschreibung kann daneben gepflegt werden.
Diese Datei ist eine Zugabe der Website, keine Violyx-Eigenschaft: In Violyx 0.3.0 liest sie nichts, und der Store in Violyx ist heute genau das, was ihr Handbuch sagt — eine Seite mit Links auf .vpk-Dateien. Behandle index.json als Katalog für Programme auf dem Rechner, für Spiegel und für den Tag, an dem eine künftige Violyx-Version so etwas lesen möchte.
Vor dem Installieren
Ein installiertes Programm ist nicht in seinen Ordner gesperrt: es kann die Dateien in /home lesen und ändern. Weder Browser noch Installierer prüfen eine Prüfsumme oder eine Signatur, und der Bestätigungsdialog zeigt nur den Titel und die Version, die das Paket über sich selbst behauptet. Installiere nur Programme, deren Quellcode du gesehen hast oder deren Autorin du vertraust.
Wo die Dateien liegen
/store/— diese Seite, in der Sprache, in der du sie erreicht hast/store/files/— die .vpk-Pakete, nach Namen mit Größen aufgelistet/store/index.json— der Katalog oben beschrieben/de/store/— dieselbe Seite auf Deutsch