This reminds me of a package called roboinst which was used to deploy IRIX machines with the combination of a file server with different configuration files for installing tardists and console access to each IRIX machine. Ah, those were the days of installing hundreds of IRIX machines :-) ...
Anyway, to reiterate: On IRIX, tardists are the most likely choice for a package system, since IRIX installations are based around it. Gendist/swpkg is used to build tardists and inst/swmgr installs them.
Tardists are uncompressed tar archives of an inst package and, as you already have found out, contain at least:
- a binary spec file without extension which is named after the base product name, like "ftn" if the base product is called "ftn".
This file has all the info on a base product, like its version number, creation date, amount of images and their subsystems, all dependencies, incompatibilities, whether it is a patch for another product, etc...
- an IDB file with extension .idb, e.g. "ftn.idb", which contains (in ASCII) the location (offset) of each file in an image file and its cksum, its destination location in an install, extra flags relevant for inst, and scripts which will be run when a file is installed or removed.
- one or more image files with filename base-product-name.image-name, e.g. "ftn.sw" or "ftn.man", which contains for that image all the files in compressed format (done by the Unix compress program which creates .Z files)
So far so good. The problem is of course that the tools to make these tardists are IRIX only. But there may be a way to create them in linux after all:
For the image files and idb files there is a tool called mydb.c mentioned before in other threads which does the extraction for you.
See
http://persephone.cps.unizar.es/~spd/src/other/mydb.c
So with some programming you can do the reverse: create image files from an IDB file by compressing and concatenating all files, noting their offset and cksum.
The spec file is binary and needs a bit of reverse engineering, which i have invested some time to do this. I have made a crude c program available
here on github and with a simple
Code:
cc -o specfile specfile.c
./specfile myproduct
you can try it out on an existing spec file.
I did this reversing with hexedit on several known packages generated with gendist from the ASCII spec and idb files. I'm not done yet, but this will give you an idea of how feasible (or difficult) it is to create tardists on non-IRIX systems.