On Sun, 1 Jul 2012, Alexander Krauss wrote:

So here is my latest low-tech proposal:

* /home/isabelle/components is the components repository, where all components are stored. They are stored as tarballs.

* The existing php script can be used to serve this directory via HTTP.

* Non-free components are marked as such simply via file permissions, i.e., by having the world-readable flag unset. Since Apache runs under group "isabelle", we might have to set the group to something else (e.g., an imagined "isabelle-admin").

* Integrity of this directory is ensured by a cron job which compares the output of "sha1sum /home/isabelle/components/*" with a file in the Admin section of the Isabelle repository. So we can easily detect accidents (and revert them, possibly with the help of the standard backups). Such a script is easy to write, and I already have
some fragments lying around here.

* /home/isabelle/contrib is maintained automatically by unpacking the
contents of the tarballs (and setting permissions properly).

* A similar script in Admin/ can download components via HTTP and link them into a clone of the Isabelle repository.

I would say that 30 lines of bash will do. And additional 30 lines of a README, which goes into the same directory.

This is now converging to a very reasonable scheme. I also prefer to archive official .tar.gz now, since permissions of individual files in the file-system are often mangled. (There was another incident just last week.)

BTW, when there is a robust script to download .tar.gz components on demand and unpack them for the user, we could even discontinue the /home/isabelle/contrib/ thing -- /home/tmp/USER provides cheap temporary disk space for private copies of it, also for mira and isatest. Most regular users are non-local anyway, using their laptop etc.


        Makarius
_______________________________________________
isabelle-dev mailing list
[email protected]
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

Reply via email to