This is an old revision of the document!
osFree distribution (draft I)
osFree distribution must use:
- WarpIN as a package management tool, with enhancements. WarpIN's purpose is maintaining the installed packages database, understanding the .WPI format, installing/deinstalling each package
- Also, a tool like eCoShop or Linux-like repository access client is needed. It can be like apt or yum in Linux, but with OS/2 specifics. This tool must be separate from WarpIN, i.e., it is specific to repositories/package sources, not packages format. So:
- it must handle different package sources, like
- files in the current directory
- special directory layouts (on the current machine, or on remote http or ftp server), like diskette images with bundles (as used by IBM OS/2 distributions so, the installer will be capable to install old IBM OS/2 distributions as well)
- other directory layouts, like APT or RPM repositories
- different file transport protocols support, like ftp, http, etc, via plugins
- maybe, support for handling the different packages formats, other than WPI, i.e.:
- plain ZIP's with metainfo and installation scripts included (like it was in UnixOS/2)
- RPM - for software ported from UNIX.
- pack/unpack-created bundles, as usual with IBM's OS/2 distributions
- the package source frontend will handle different package types via special plugins (or backends), and invoke different tools when installing packages (invoke WIC, UNZIP, UNPACK or RPM)
- maybe, even, the possibility to create the decentralised network of package repositories is needed – this will allow to use any nearest mirror, or use another mirror if the main mirror is down. Even we could try to create the repositories network on Peer-to-Peer basis ;)
- The enhancements to WarpIN should include:
- “Sticky” flag for packages which should not be upgraded
- Support for simultaneously existing versions of different packages with libraries, which are needed for different applications
- Maybe, “Unstable” flag for apps and libraries, so, unstable package don't replace stable ones, they only create a separate branch in dependencies tree.
- Coexistence of several package trees, which are updated separately, and do not influence other trees – some analogies with source code repositories with branches
- Support for separating and merging the branches, rollback of packages to an older (but stable) version
- response-file-driven installer:
- response file can be created manually
- response file can be generated by UI (VIO or PM-based)
- so, installer must be divided into four separate parts:
- UI for choosing user options and generating the response file interactively, it can be:
- textmode UI with pseudographics
- graphical, PM-based
- installation engine, based on invoking the package access frontend to retrieve the packages. It acts according the response file
- it can be started by an experienced user, system administrator, or by the installation UI.
- installation engine is independent from UI and can be started separately; and more: the user can start the UI on one machine, save the resulting RSP (response) file and apply it on another machine, by pointing the installation engine to the needed RSP
- the single installer for initial machine setup, and subsequent option changes/additional software installation – something like FreeBSD sysinstall
- also, DOS (DPMI)-based version of the installation engine and UI would be desired
- a Linux- or Win32-based version (?)
- package access frontend, handling different package sources, via backends:
- different package storage/repository types
- different access protocols are implemented as special plugins
- enhanced WarpIN as the main package handling tool.
Discussion