SvarDOS / bugz

SvarDOS bug tracker
http://svardos.org/
7 stars 0 forks source link

Downloadable snapshot of all packages #59

Closed boeckmann closed 10 months ago

boeckmann commented 10 months ago

It would be nice if a recent snapshot ZIP (or CD image) of all packages in the repository could be downloaded in case one does not want / can setup network on the DOS machine. This ZIP could then (for example in my case) be extracted to a Compact Flash card for use in the DOS PC or transferred by some other means.

Perhaps this could also be put on the installation cd? Current data on the installation cd occupies only 1.6MB.

bttrx commented 10 months ago

related to #17

mateuszviste commented 10 months ago

definitely a good idea, and indeed this could be then built upon later to address #17.

so basically the build.sh script would need to iterate over all packages and filter out only *.SVP files (ie. no sources) and keep only the latest version for every package. Then write these to a CD image and use the latest bootable floppy as boot.

The tricky part here is 'keep only the latest version for every package'. Not sure this can (or should) be done through the build.sh script. Such feature exists in buildidx already: http://svn.svardos.org/blame.php?repname=SvarDOS&path=%2Fbuildidx%2Fbuildidx.php&rev=1608#l72

This is used to create a json index of all packages, sorted by version. The build procedure should probably rely on this JSON file - but even then, processing a JSON in a bash script might not be the best approach.

boeckmann commented 10 months ago

Perhaps it is easier to get the packages via batch download gathered by the links provided by http://svardos.org/?p=repo? That should be a achievable by a regex (grep)?

mateuszviste commented 10 months ago

Perhaps it is easier to get the packages via batch download gathered by the links provided by http://svardos.org/?p=repo? That should be a achievable by a regex (grep)?

Could be easier on the short term, but it's probably not a very robust approach. Now that I think of it, maybe an even simpler method would be for buildidx to generate a separate index file that would contain only a list of filenames for "newest version of every package". Such list should be relatively easy to iterate over in bash.

mateuszviste commented 10 months ago

I made a first step today: on top of computing index files, buildidx is populating a special directory with categorized symlinks. I have published this special directory here:

http://packages.svardos.org/latest/ (this is a temporary setup just for the show, I might delete it later)

The files appear as files, but really they are symbolic links so they take almost no extra space on the server. Each symlink points to the latest available version of the given package in the main repository of packages. This is updated whenever buildidx is executed (which is every time that a commit is made in the repository of packages).

So now it is only a matter of calling mkisofs on this directory to generate a downloadable ISO that would be always up to date with latest version of every package, and advertise this iso file on the website (in the "repo" section I think).

Worth noting btw that there are a few glitches in the packages: some of the non-core tools have files in "bin" which produces a "bin" category that should not exist, and the edrdos package should store its files in "kernels/edrdos" and not kernels/edr-dos" (because consistency with package filename is expected).

boeckmann commented 10 months ago

No problem, I will change the path for the edrdos package update.

mateuszviste commented 10 months ago

image

boeckmann commented 10 months ago

This is awesome! I can confirm that the download works :-)