In the beginning
In the beginning there was The RISC OS Packaging Project, aka RiscPkg. Debuting in 2004, it introduced a specification for how software can be packaged under RISC OS. Packages which conform to the specification can easily be installed, updated, and uninstalled by tools (such as the original RiscPkg tool). More importantly, if a package depends on other packages, those dependencies can also be managed by the same tools, saving the user the hassle of keeping dependencies updated manually.
The package format also makes it easy to construct a searchable index of packages, aiding software discovery - something very useful in the RISC OS world, where software is typically spread out very thinly across the websites of individual authors. Furthermore, the inclusion of licensing information, and the ability to produce packages containing source code, makes it possible to produce mirrors of software without running into legal problems - something also very useful in the RISC OS world, where software can become abandoned and websites can fall offline with little or no warning.
If you look around the RisckPkg website, you'll notice a few suspicious things:
- The 'Packages' link on the navigation bar is dead
- The 'Bugs' link on the navigation bar is dead
- The 'Mailing lists' link on the navigation bar is dead
- The Acceptable Use Policy hasn't been formalised
- The developer enrolment page wants you to register via http://gdshaw.net/, which (as you can probably guess by now) is dead
In terms of bits which do work, the most important bits are likely to be the following:
- The Policy Manual - the specification for how packages should be structured. It's not the easiest document to navigate (some hyperlinks would be nice), but without it the project would truly be dead.
- The Subversion Server - hosting the source code for all the packages that are available directly from riscpkg.org
- The main 'Unstable' distribution. Remember how the main 'packages' link is dead? Yeah, turns out you don't really need that. If you know how to read the distribution index file (or you have a tool which knows how to read it) you can still download all the packages.
PackMan is for all intents and purposes the successor to the original RiscPkg tool. It's designed to work with RiscPkg packages, although it has also resulted in some improvements being made to the specification itself.
One key feature of PackMan is that it's able to merge together multiple package lists. The default configuration includes the original riscpkg.org 'Unstable' distribution, the riscos.info package list, and the RISC OS Open package lists.
So how do I distribute my software via PackMan?
The PackMan website recommends that the community rallies behind ROOL's package list as a central source of packages. The ROOL wiki has a guide on how to get started.
One important thing to note is that although ROOL will host copies of your packages (avoiding your software vanishing forever when your personal website inevitably dies), there's currently no way for developers to directly upload packages to ROOL's server. Instead, you must host the packages on your own website, and have a 'pointer file' which contains an index of all those URLs (and for some reason the pointer file isn't the same as a package distribution/index file - but I digress). On a nightly basis ROOL's server will crawl all of the pointer files for the registered developers, copying new/updated packages to ROOL's server and updating the central package indices.
PackMan in practice
Next time we'll be taking a look at how all this works in practice, as I attempt to bring the software on my own somewhat neglected website kicking and screaming into